티스토리 뷰

728x90
반응형

객체 지향 설계 (SOLID)

  1. 객체 지향 설계 ?

  2. References

객체 지향 설계

200년대 초반, 로버트 C. 마틴이 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을

로버트 C. 마틴

'클린 코드', '클린 코더' 의 저자로 여기서 설명한 SOLID 원칙을 명명했다고 한다.

이 원칙들은 '클린 코드' 를 기반으로 설명하고 있으니, 원한다면 책을 통해 깊이 공부하는 것이 좋을 것 같다.

마이클 페더스가 각 원칙의 앞 머리를 따서 묶은 후 소개한 것이다.

SOLID 원칙들은 자기 자신 클래스 안에 응집도는 내부적으로 높이고, 타 클래스들간 결합도를 낮추는 High Cohesion - Loose Coupling(높은 응집도 - 느슨한 결합도) 원칙을 객체 지향의 관점에서 도입한 것이다.

좋은 소프트웨어는 응집도가 높고 결합도가 낮기 때문이다.

시간이 지나도 프로그래머로 하여금 유지보수에 용이하고 확장이 쉽도록 프로그래밍할 수 있도록 도움을 주는 원칙이다.

물론, 이 원칙을 이해하고 있더라도 실제 원하는 바를 얻고자 하려면 끝 없는 리팩토링을 거쳐야 할 것이다.



두문자약어개념
SSRP단일 책임 원칙 (Single responsibility principle) "한 클래스는 하나의 책임만 가져야 한다."
OOCP개방-폐쇄 원칙 (Open/closed principle) "소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.”
LLSP리스코프 치환 원칙 (Liskov substitution principle) “프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.” (계약에 의한 설계를 참고하라.)
IISP인터페이스 분리 원칙 (Interface segregation principle) “특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.”
DDIP의존관계 역전 원칙 (Dependency inversion principle) 프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안된다.” 의존성 주입은 이 원칙을 따르는 방법 중 하나다.

[참고 : 위키백과]

References

위키백과 : 객체 지향 설계

객체지향 5대 원칙

객체 지향 설계란 ?


반응형
공지사항
최근에 올라온 글