클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계에 대하여 5가지 항목으로 정리
SRP 단일책임원칙 (Single Repository Principle)
- 한 클래스는 하나의 책임만 가져야 한다.
- 하나의 책임이라는 것은 굉장히 모호한데.. 가장 중요한 기준은 변경이다. 하나의 클래스를 뜯어내는것이 대공사로 이어진다면? SRP를 잘 따랐다고 볼 수 없다. 즉, 해당 클래스를 변경했을 때 파급력이 작다면 SRP를 잘 따른 클래스라고 볼 수 있다.
- Ex ) UI 변경, 객체의 생성과 사용을 분리
OCP 개방폐쇄원칙 (Open/Closed pinciple)
-
소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀있어야 한다.
-
이게 무슨 소리일까? 다형성을 적극 활용하라는 의미
-
인터페이스를 구현한 새로운 클래스를 생성하는 것은 변경한 것이 아닌 생성(=확장)
이후 다시 쓰겠슴미다