SRP (PDF phiên bản; HTML phiên bản) cho rằngKhi nào bạn vi phạm SRP (Nguyên tắc Reponsibility duy nhất)?
Không bao giờ nên có nhiều hơn một lý do cho một lớp học để thay đổi
Khi bạn hãy nhìn vào Outlook, cửa sổ Lịch sự kiện , nút "Lưu và Đóng".
Vì vậy, khi các chức năng của một trong hai hoặc cả hai Lưu hoặc Đóng thay đổi, nút đó nên thay đổi. Nó rõ ràng vi phạm SRP.
Chức năng này vừa tiết kiệm thời gian vừa thuận lợi vì đó là điều mà hầu hết người dùng mong đợi để thực hiện khi họ lưu một cuộc hẹn trên lịch.
Nhưng bây giờ, câu hỏi của tôi là, khi khác bạn có vi phạm SRP không khi tính năng cần phải có giá trị trong Outlook?
Cái gì? Nút thay đổi khi Lưu hoặc Đóng thay đổi như thế nào? Bạn nghĩ lớp học nào sẽ lưu và đóng? Làm thế nào để thay đổi các chức năng đó có tác động đến nút? –
Điều tôi muốn nói là "thay đổi" là khi thực hiện cơ bản các thay đổi "lưu" hoặc "đóng"; Không phải khi giao diện người dùng của nút phải thay đổi. – Sung
Ví dụ không hợp lệ. Hàm có mã của nút có một _sequence_ của hai hành động: "Save()" và "Close()". Điều này không vi phạm bất cứ điều gì. Bất kỳ hàm nào cũng có thể là một chuỗi, một sự lặp lại hoặc một sự lựa chọn. –