SOLID |
I. 유지보수와 확장이 쉬운 시스템 설계, 객체지향 설계원칙의 개요
가. 객체지향 설계원칙의 정의
- 로버트 마틴에 의해 명명된 객체지향 프로그래밍의 설계의 5가지 원칙으로 시간이 지나도 유지보수와 확장이 쉬운 시스템 구축 원칙
나. 객체지향 5가지 설계원칙 항목
- SRP, OCP, LSP, ISP, DIP
II. 객체지향의 5가지 설계원칙 (SOLID원칙)
원칙 |
구분 |
설명 |
SRP |
명칭 |
단일 책임의 원칙 (Single Responsibility Principle) |
정의 |
하나의 클래스는 하나의 책임만을 가져야 한다 |
|
개념도 |
|
|
OCP |
명칭 |
개방 폐쇠의 원칙 (Open Close Principle) |
정의 |
상하 관계인 확장은 열려 있고 수평 관계인 변경은 닫혀 있어야한다. |
|
개념도 |
|
|
LSP |
명칭 |
리스코프 치환의 원칙 (Liskov Substitution Principle) |
정의 |
부모 클래스 대신 자식 클래스를 넣어도 잘 구동되어야 한다. |
|
개념도 |
|
|
ISP |
명칭 |
인터페이스 분리의 원칙 (Interface Segregation Principle) |
정의 |
클라이언트가 사용하지 않는 메소드는 의존 관계가 있으면 안된다. |
|
개념도 |
- 인터페이스의 의존 관계를 최소화하여 상속 구현 |
|
DIP |
명칭 |
의존 관계 역전 원칙 (Dependency Inversion Principle) |
정의 |
상위 모듈은 하위 모듈에 종속적이지 않아야 한다. |
|
개념도 |
- 스노우타이어 구체 클래스를 인터페이스 형태로 바꾸어 종속 탈피 |
ㄱ
'IT기술노트 > 소프트웨어공학' 카테고리의 다른 글
UML 2.0 (0) | 2021.01.31 |
---|---|
UML(Unified Modeling Language) (0) | 2021.01.31 |
다형성 (Polymorphism) (0) | 2021.01.31 |
객체지향 (Object-Oriented) (0) | 2021.01.31 |
모듈화 (Modularity) (0) | 2021.01.31 |
소프트웨어 설계 (Software Design) (0) | 2021.01.31 |
도메인공학 (0) | 2021.01.31 |
페르소나 (Persona) (0) | 2021.01.31 |
댓글