티스토리 뷰
728x90
반응형
객체 지향 설계 ?
References
객체 지향 설계
200년대 초반, 로버트 C. 마틴이 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을
로버트 C. 마틴
'클린 코드', '클린 코더' 의 저자로 여기서 설명한 SOLID 원칙을 명명했다고 한다.
이 원칙들은 '클린 코드' 를 기반으로 설명하고 있으니, 원한다면 책을 통해 깊이 공부하는 것이 좋을 것 같다.
마이클 페더스가 각 원칙의 앞 머리를 따서 묶은 후 소개한 것이다.
SOLID 원칙들은 자기 자신 클래스 안에 응집도는 내부적으로 높이고, 타 클래스들간 결합도를 낮추는 High Cohesion - Loose Coupling(높은 응집도 - 느슨한 결합도) 원칙을 객체 지향의 관점에서 도입한 것이다.
좋은 소프트웨어는 응집도가 높고 결합도가 낮기 때문이다.
시간이 지나도 프로그래머로 하여금 유지보수에 용이하고 확장이 쉽도록 프로그래밍할 수 있도록 도움을 주는 원칙이다.
물론, 이 원칙을 이해하고 있더라도 실제 원하는 바를 얻고자 하려면 끝 없는 리팩토링을 거쳐야 할 것이다.
두문자 | 약어 | 개념 |
---|---|---|
S | SRP | 단일 책임 원칙 (Single responsibility principle) "한 클래스는 하나의 책임만 가져야 한다." |
O | OCP | 개방-폐쇄 원칙 (Open/closed principle) "소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.” |
L | LSP | 리스코프 치환 원칙 (Liskov substitution principle) “프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.” (계약에 의한 설계를 참고하라.) |
I | ISP | 인터페이스 분리 원칙 (Interface segregation principle) “특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.” |
D | DIP | 의존관계 역전 원칙 (Dependency inversion principle) 프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안된다.” 의존성 주입은 이 원칙을 따르는 방법 중 하나다. |
References
반응형
'프로그래밍 > 프로그래밍' 카테고리의 다른 글
선언형 / 명령형 프로그래밍 (0) | 2019.08.25 |
---|---|
개방-폐쇄 원칙 (Open-Closed Principle, OCP) (0) | 2019.03.12 |
단일 책임 원칙 (Single Responsibility Principle, SRP) (0) | 2019.03.10 |
리스코프 치환 원칙(Liskov substitution principle, LSP) (0) | 2019.03.03 |
팩토리 메소드 패턴(Factory Method Pattern) (0) | 2019.02.24 |
공지사항
최근에 올라온 글