Trách nhiệm đơn nhất
Bài học 22 trên 28 trong khóa học Clean Code: viết code tốt hơn với Python của Coddy.
"Một lớp không bao giờ nên có nhiều hơn một lý do để thay đổi."
Nguyên lý đơn trách nhiệm (Single responsibility principle, SRP) quy định rằng mỗi lớp và hàm chỉ nên đảm nhận một nhiệm vụ hoặc có một lý do để thay đổi.
Mục tiêu:
- Tạo ra các lớp và hàm có tính gắn kết cao và vững chắc.
- Khuyến khích kết hợp lớp.
- Tránh trùng lặp code.
Thử thách
Trung bìnhBạn được cung cấp lớp Person, lớp này có phương thức save để lưu đối tượng người vào cơ sở dữ liệu.
Trong đoạn code đã cho, lớp này có hai trách nhiệm:
- Tạo và quản lý đối tượng người
- Lưu người đó vào cơ sở dữ liệu
Nhiệm vụ của bạn là đảm bảo Person chỉ có một trách nhiệm.
- Tạo lớp
Databasecó phương thứcsave. - Tạo kết nối giữa
PersonvàDatabase
Có nhiều cách để thực hiện thử thách này, nhưng chúng ta sẽ hướng đến một cách cụ thể. Hãy dùng các gợi ý khi cần!
Lưu ý rằng khi tạo một lớp riêng cho Database, chúng ta có thể quản lý mọi thứ "Database related" tại một nơi!
Tự làm thử
class Person:
def __init__(self, name):
self.name = name
def save(self):
print('Saving person with name "%s"' % self.name)Tất cả bài học trong Clean Code: viết code tốt hơn với Python
6SOLID
Giới thiệuTrách nhiệm đơn nhấtMở rộng, đóng sửa đổiThay thế LiskovPhân tách giao diệnĐảo ngược phụ thuộcTự luyện tập: Trình biên dịch Python online