Trong thiết kế của tôi tôi khá nghiêm ngặt về việc xác định hợp đồng như:
- từng mua lại tài nguyên phải được ghép nối với một thông cáo
- mỗi cuộc gọi để bắt đầu một dịch vụ phải được kết hợp với một cuộc gọi đến dừng dịch vụ
- mỗi người quan sát mà gắn vào một chủ đề phải tách
- và vân vân
(hợp đồng đó s không phải là bất thường, giống như bạn phải ghép nối mở và đóng của một tệp hoặc ghép nối các cuộc gọi mới/xóa bằng các ngôn ngữ không sử dụng thu gom rác tự động).
Mỗi hợp đồng này có thể được kiểm tra ở thời gian chạy đến một mức độ nào đó. Ví dụ, một người quan sát tách ra nhiều lần hơn nó đã đính kèm có thể được phát hiện và báo cáo (khẳng định hoặc ngoại lệ tùy thuộc vào tình huống).
Vì vậy, câu hỏi của bạn rằng:
Về lý thuyết, là nó coi hơn chính xác cho các mã thêm handler đến một đối tượng để nhớ để gỡ bỏ nó hơn giả định đối tượng sẽ tự làm sạch lên trước khi nó đi ngoài phạm vi?
Đã bật vị trí. Câu trả lời là Có, và không chỉ trong lý thuyết, nhưng trong thực tế quá. Theo tôi, các hợp đồng này giúp bạn tránh được các lỗi quét dưới thảm.
Quy định theo cách này để suy nghĩ và bạn đang trên đường xây dựng phần mềm thực sự mạnh mẽ.
Nguồn
2009-01-20 10:19:37
Đủ công bằng. Cảm ơn rất nhiều cho một câu trả lời nhanh chóng và hữu ích. – Kivin