Rất nhiều người nói những điều như "một lớp học không bao giờ nên lớn hơn đầu của bạn".
Tuy nhiên, tôi vừa tham gia một cuộc thảo luận với một số lập trình viên thực sự tuyệt vời, đẳng cấp thế giới về chính chủ đề này. Tôi đã nói chuyện với một trong những anh chàng Khỏa thân. Theo như chúng tôi có thể nói, đôi khi, điều này xảy ra, và không có nhiều cách để khắc phục nó.
Tuy nhiên, thông thường, một lớp mà điều này xảy ra là một đối tượng miền đại diện cho thành phần cơ bản của miền của bạn - Tài khoản cho ngân hàng, Bán cho bán lẻ, v.v. Nếu bạn cũng tìm thấy nó xảy ra với các lớp khác, có lẽ bạn cũng vậy muốn xem xét trách nhiệm của lớp đó. Đây là lời khuyên của tôi:
- Nếu nó được gọi là "Người quản lý", "Người trợ giúp" hoặc "Dịch vụ", thì rất có thể nó quá lớn. Khi bạn thực sự tìm ra trách nhiệm của một lớp nên là gì, bạn sẽ thấy việc ủy thác các trách nhiệm khác dễ dàng hơn.
- Nếu nó được gọi là "Trình điều khiển", thì nó sẽ chịu trách nhiệm kiểm soát sự tương tác giữa một nhóm các lớp khác ... và không có gì khác.
- Nếu nó thông qua dữ liệu và tin nhắn giữa các nút vật lý khác nhau sau đó hoặc là nó phải đối phó với chuyển đổi một thông điệp cụ thể một hình thức đăng, hoặc nó xử lý các cơ chế chuyển nhượng. Chẳng hạn, bạn có thể có một lớp chuyển đổi Giao dịch Ngân hàng thành XML và một lớp khác gửi XML đó qua HTTP.
- Nếu nó chuyển các sự kiện giữa các mô-đun khác nhau trong một ứng dụng, thì nó có trách nhiệm thông báo cho người nghe khi một sự kiện được nêu ra và không có gì khác.
Theo nguyên tắc thông thường, nếu nó quá lớn, hãy xem liệu bạn có thể ủy thác bất kỳ trách nhiệm nào cho một lớp khác không, và nếu bạn không thể, có lẽ nó sẽ ổn.