반응형
S - SRP - Single Responsiblity Principle (단일 책임 원칙)
한 클래스는 하나의 책임만 가져야 한다.
다음과 이미지처럼 트럭 정보를 관리하는 클래스가 있다고 가정
class Truck:
id_number = None
car_number = None
owner_name = None
def __init__(self, id_number, car_number, owner_name):
self.id_number = id_number
self.car_number = car_number
self.owner_name = owner_name
트럭의 차대번호는 생산에 따라 부여된 고유 번호로 변경되지 않지만, 소유주나 차량등록번호는 변경 될 가능성이 있는 정보이다. 따라서 TruckOwnerInfo 클래스를 생성을 하여 해당 정보를 담당할 수 있도록 해준다.
class Truck:
id_number = None
owner_info = None
def __init__(self, id_number, owner_info: TruckOwnerInfo):
self.id_number = id_number
self.owner_info = owner_info
class TruckOwnerInfo:
car_number = None
owner_name = None
만약, 여기서 트럭의 색이나 바퀴 등의 정보를 담당하는 클래스를 생성한다고 한다고 하면,
class Truck:
id_number = None
owner_info = None
detail_info = None
def __init__(self, id_number, owner_info: TruckOwnerInfo, detail_info: TruckDetailInfo):
self.id_number = id_number
self.owner_info = owner_info
self.detail_info = detail_info
class TruckOwnerInfo:
car_number = None
owner_name = None
class TruckDetailInfo:
color = None
wheel = None
이런식으로 TruckDetail Info클래스를 생성하여 해당 클래스에서만 변경이 일어나고, Truck 클래스안에서는 변경이 없도록 해준다.
728x90
반응형