Menu
CoddyTech

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.
challenge icon

Thử thách

Trung bình

Bạ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:

  1. Tạo và quản lý đối tượng người
  2. 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 Database có phương thức save.
  • Tạo kết nối giữa Person và 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

Tự luyện tập: Trình biên dịch Python online