-
Notifications
You must be signed in to change notification settings - Fork 6
8장 OCP:개방 폐쇄 원칙
anohk edited this page Feb 2, 2022
·
4 revisions
자유롭게 작성 해 주세요.
재영
-
소프트웨어 개체의 행위는 확장할 수 있어야 하지만, 이때 개체를 변경해서는 안된다.
- 행위가 확장되어 추가적인 변경이 생길때(개방), 저수준의 컴포넌트들이 고수준의 것을 변경되도록 하면 안된다.(폐쇄)
-
시스템을 확장하기 쉽게하고 동시에 변경으로 너무 많은 영향을 받지 않도록 하는 목적
-
DRF 의 Permission 체크 형태는 OCP 원칙은 잘 챙긴 예시가 될 수 있지 않을까?
- 인터페이스를 구현해서 커스텀 Permission을 생성(저수준)해서 뷰에 사용할 것임을 명시하면, 뷰(고수준)에 영향 없이 변경을 발생시킬 수 있음
class BasePermission:
def check_permission():
pass
class ConcreatePermission:
def check_permission():
return do_sth()
class APIView:
permission_classes = [ConcreatePermission, ...]