Tôi đang cố gắng hiểu trách nhiệm thực sự là gì vì vậy tôi muốn sử dụng ví dụ về điều tôi hiện đang làm việc. Tôi có một ứng dụng nhập thông tin sản phẩm từ một hệ thống này sang hệ thống khác. Người dùng ứng dụng sẽ chọn các cài đặt khác nhau cho các trường sản phẩm trong một hệ thống muốn sử dụng trong hệ thống khác.Giúp hiểu Nguyên tắc Trách nhiệm Duy nhất
Vì vậy, tôi có một lớp, nói ProductImporter và trách nhiệm của nó là nhập sản phẩm. Lớp này lớn, có lẽ quá lớn.
Các phương pháp trong lớp này rất phức tạp và ví dụ, getDescription. Phương pháp này không chỉ đơn giản là lấy một mô tả từ hệ thống khác nhưng đặt mô tả sản phẩm dựa trên các cài đặt khác nhau do người dùng đặt. Nếu tôi đã thêm một thiết lập và một cách mới để có được một mô tả, lớp này có thể thay đổi.
Vì vậy, đó là hai trách nhiệm? Có một trong đó nhập khẩu sản phẩm và một trong đó được một mô tả. Có vẻ như theo cách này, hầu như mọi phương pháp tôi có trong lớp riêng của nó và dường như quá mức cần thiết.
Tôi thực sự cần một mô tả tốt về nguyên tắc này bởi vì thật khó để tôi hoàn toàn hiểu được. Tôi không muốn sự phức tạp không cần thiết.
Nó "Cho thấy thiếu thiết kế" - Đây là vấn đề mà tôi không chắc chắn làm thế nào để sửa chữa. Nếu phương pháp mô tả thuộc về lớp và tôi phải tính đến từng biến thể tùy thuộc vào các cài đặt khác nhau, bạn có thể thiết kế nó theo cách nào khác. Tôi không thấy cách nào khác. – user204588
Bạn có thể có một lớp Mô tả, người chịu trách nhiệm xử lý biến thể. Và cứ như vậy, khi một trách nhiệm duy nhất là quá lớn, hãy phân chia nó thành những trách nhiệm nhỏ hơn. –