SOLID 개발 원칙
SRP (단일 책임의 원칙)
- 클래스가 제공하는 기능은 하나의 책임을 수행하는 집중되어야 된다.
- 코드의 가독성 항샹, 유지보수 용이
- 책임 영역이 확실해지 때문에 한 책임의 변경에서 다른 책임의 변경으로 연쇄 작용을 용이해진다.
OCP (개방 폐쇄의 원칙 : Open Close Principle)
- 소프트웨어 구성요소 (컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려 있고, 변경에는 닫혀 있어야 된다는 원리
- 요구사항 변경이나 추가사항이 발생하더라도, 기존 구성요소는 수정이 일어나지 않아야 되고, 쉽게 확장하여 재사용할수 있어야 된다.
- 변경(확장)될 것과 변하지 않을 것을 엄격하게 구별을 하고 이 모듈이 만나는 지점을 인터페이스를 정의한다.
- 구현에 의존하기 보다는 정의한 인터페이스에 의존하도록 코드를 작성을 한다.
LSP (리스코브 치환의 원칙: The Liskov Substitution Principle)
- 서브타입은 언제나 기반타입으로 교체할수 있어야한다.
- 서브타입은 언제나 기반타입과 호환 될수 있어야 한다
ISP (인터페이스 분리의 원칙: Interface Segregation Principle)
- 자신이 사용하는 않는 인터페이스는 구현하지 말아야 한다는 원리
- 하나의 일반적인 인터페이스 보다는 여러개의 구체적인 인터페이스가 낫다.
- ex) Java Swing의 JTable - Accessible, CellEditorListener, ListSelectionListener, Scrollable, TableColumnModelListener, TableMoldelListener
DIP (의존성역전의 원칙: Dependency Inversion Principle)
- 하위 레벨 모듈의 변경이 상위 레벨 모듈의 변경을 요구하는 위계관계를 끊는 의미의 역전이다.
- IoC
- Layering Interface
- 통신 프로그래밍 모델
- send(), & recv()
- Event Driven & Callback
'Programing' 카테고리의 다른 글
Thread와 Process (0) | 2018.11.29 |
---|---|
Cache (0) | 2018.11.20 |
RESTful API (0) | 2018.10.28 |
Event Sourcing (0) | 2018.10.16 |
Actor Model (0) | 2018.10.02 |