-
Notifications
You must be signed in to change notification settings - Fork 6
7장 SRP:단일 책임 원칙
Lee Ho Sung edited this page Feb 3, 2022
·
4 revisions
자유롭게 작성 해 주세요.
재영
- 하나의 모듈은 하나의 액터에 대해서만 책임져야한다
- 장고 save 에 많은 의존성을 걸어서 발생하는 문제가 비슷하지 않을까?
- 데이터베이스 저장에 호출되는 save() 메서드에 여러 액터들을 위한 논리가 포함되었음
- 이로인해 save() 메서드의 관리가 어려워짐
class Model:
field_a = ''
field_b = ''
field_c = ''
def save(self):
"""데이터베이스 저장시 호출되는 함수"""
self.field_a = 'x'
def action_a():
"""save 에 의존"""
model.field_b = 'y'
model.save()
def action_b():
"""save 에 의존"""
model.field_c = 'z'
model.save()
---------------------------------------------------------------------------
class Model:
field_a = ''
field_b = ''
field_c = ''
def save(self):
"""데이터베이스에 저장"""
# action_a says: '이제 이거 필요 없으니까 사라지거라'
# self.field_a = 'x'
pass
def action_a(model):
model.field_b = 'y'
model.save()
def action_b(model):
# ????????????? -> 잘 되던게 왜 갑자기?
model.field_c = 'z'
model.save()
=> Model 클래스가 action_a 와 action_b 두 개의 액터에 대한 책임을 지고있던것은 아닐까?
---------------------------------------------------------------------------
class Model:
field_a = ''
field_b = ''
field_c = ''
def action_a(model):
model.field_a = 'x'
model.field_b = 'y'
def action_b(model):
model.field_a = 'x'
model.field_c = 'z'
=> 개별 액터와 관련된 부분에서 자신에게 필요한 코드들을 잘 가지고 있도록 해야한다.
호성
- 컴포넌트, 모듈, 라이브러리, 서비스, 프레임워크 는 어떤 차이가 있을까?
- 인터페이스
- 계약 정도의 의미
- 수행 해야 하는 규약
- 교환될 수 있는 것