2. 소프트웨어 공학/소프트웨어 분석 및 설계

객체지향 설계원칙

SWExpert 2022. 7. 23. 19:15

I. 재사용성과 유지보수 향상을 위한, 객체지향 설계원칙 개요

-. 정의: 코드를 좀더 유지보수하기 쉽고, 유연하고, 확장하기 쉽게 만들기 위한 소프트웨어 개발 5원칙

-. 특징: 응집도 높임, 결합도 낮춤, 일관성 높임, 협업 퀄리티 높임에 기여

II. 객체 지향 설계 5원칙 및 예시

가. 객체 지향 설계 5원칙 

약어 원칙 설명
SRP 단일책임의 원칙 하나 이상의 이유로 클래스를 변경해서는 안된다
모든 클래스는 오직 하나의 책임만 가진다
OCP 개방폐쇄의 원칙 소프트웨어 요소는 확장에는 열려 있고 변경에는 닫혀 있어야 한다.
LSP 리스코프치환 원칙 베이스 클래스를 사용하는 기능들은 파생클래스로도 별다른 이해없이 사용가능해야 한다.
ISP 인터페이스 분리 원칙 특정 클라이언트를 위한 인터페이스 여러개가 범용 인터페이스 하나보다 낫다.
DIP 의존관계 역전 원칙 프로그래머는 추상화에 의존해야지, 구체화에 의존하면 안된다. 

나. 객체 지향 5원칙 사례

원칙 원칙 위반 사례 원칙 적용 사례
단일책임의 원칙
개방폐쇄의 원칙
리스코프치환 원칙
인터페이스 분리 원칙
의존관계 역전 원칙