단일 책임 원칙
Coddy의 Clean Code - Python으로 더 나은 코드 작성하기 코스 레슨 — 28개 중 22번째.
"클래스를 변경해야 하는 이유는 단 하나뿐이어야 합니다."
단일 책임 원칙(SRP)은 모든 클래스와 함수가 단 하나의 책임 또는 변경해야 할 단 하나의 이유만을 가져야 한다는 원칙입니다.
목표 -
- 응집도가 높고 견고한 클래스와 함수를 생성합니다.
- 클래스 합성을 촉진합니다.
- 코드 중복을 방지합니다.
챌린지
중급Person 클래스와 사람 정보를 데이터베이스에 저장하는 save 메서드가 주어집니다.
주어진 코드에서 이 클래스는 두 가지 책임을 가지고 있습니다:
- 사람 객체 생성 및 관리
- 사람 정보를 데이터베이스에 저장
여러분의 과제는 Person 클래스가 오직 하나의 책임만 갖도록 만드는 것입니다.
save메서드를 가진Database클래스를 생성하세요.Person과Database사이의 연결을 만드세요.
이 과제를 수행하는 방법은 여러 가지가 있지만, 우리는 특정한 한 가지 방법을 목표로 합니다. 필요할 때 힌트(hints)를 사용하세요!
데이터베이스를 위한 별도의 클래스를 만들면 모든 "Database related" 작업을 한 곳에서 관리할 수 있다는 점에 유의하세요!
직접 해보기
class Person:
def __init__(self, name):
self.name = name
def save(self):
print('Saving person with name "%s"' % self.name)