728x90
반응형
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
반응형
'IT' 카테고리의 다른 글
객체지향 설계 5대 원리 SOLID - IRP (0) | 2021.01.22 |
---|---|
객체지향 설계 5대 원리 SOLID - OCP (0) | 2021.01.21 |
객체지향 설계 5대 원리 SOLID (0) | 2021.01.21 |
통신사별 DNS IP 리스트 (구글, SKT, KT, LG) (0) | 2020.05.06 |
batch 프로그램으로 host 변경하기 (0) | 2019.10.25 |