반응형
객체지향 5대원칙 (SOLID)
- SRP (단일책임 원칙)
- OCP (개방-폐쇄 원칙)
- LSP (리스코프 치환 원칙)
- DIP (의존 역전 원칙)
- ISP (인터페이스 분리 원칙)
SRP
- 작성된 클래스는 하나의 기능만 가지며 클래스가 제공하는 모든 서비스는 하나의 기능을 수행하는데 집중되어 있어야한다. 기능이 많아지면 결합이 발생할 가능성이 높아지며 유지보수 비용이 증가한다.
그렇기때문에 책임을 분리시킬 필요가 있다.
OCP
- 기존의 코드를 변경하지 않고 기능을 수정하거나 추가할 수 있도록 설계해야 한다.
변경될 수 있는것이 무엇인가에 초점을 맞춰야 한다.
변경이 일어날 수 있는 내용은 수정하기 쉽게 설계하고 변경되지 않아야 하는 것은 수정되는 내용에 영향을 받지 않게 설계해야 한다.
LSP
- 자식클래스는 부모클래스에서 가능한 행위를 수행할 수 있어야한다.
자식 클래스는 부모 클래스의 역할을 대체할 수 있어야 한다는 것을 의미한다.
대체할 수 있으려면 부모의 기능에 대해 오버라이드를 할 수 없게하면 된다.
자식 클래스는 부모 클래스의 기능을 재정의하지 않고 확장만 수핼할 수 있도록 해야한다.
DIP
- 의존 관계를 맺을 때, 변화가 거의 없는 것에 의존해야한다.
변화하기 쉬운것이란 구체화된 클래스를 의미하고 변화하기 어려운것은 인터페이스와 추상화를 의미한다.
따라서 인터페이스와 추상클래스에 의존을 해야한다는 의미이다.
ISP
- 자신이 사용하지 않는 인터페이스는 구현하지 않아야한다.
반응형
'컴퓨터공학 기초 > 기초개념+TIP' 카테고리의 다른 글
[JAVA] 객체지향언어의 장점 (0) | 2020.03.02 |
---|---|
[기초개념] 프로세스와 스레드 (0) | 2020.02.23 |
[기초개념] stateful vs stateless (0) | 2020.02.19 |
[기초지식]JVM 구조와 자바 런타임 메모리구조 (+Garbage Collector) (0) | 2020.02.17 |
[Git] Git 자주쓰는 명령어 정리/ Git Command (0) | 2020.01.27 |
댓글