Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

잡동사니를 모아두는 서랍장

객체지향 5원칙(SOLID) 본문

Java

객체지향 5원칙(SOLID)

kingkk31 2020. 12. 2. 15:27

자바 개발자란 사람이 이 5원칙도 제대로 기억 못하고 맨날 찾아보고 있다니...정리하며 다시 기억하자.

 

1. 단일 책임 원칙 (Single Responsiblity Principle, SRP)

- 클래스는 단 하나의 책임만 가질 것. 클래스 단일 책임에 관한 원칙.

여러 기능을 넣지 말자. 나중에 내부 기능(책임)들 끼리 결합도가 높아진다. 이렇게 된 상황이면 다른 클래스로 쪼개보자.

 

2. 개방-폐쇄 (Open-Closed Principle, OCP)
- 소프트웨어 구성요소(클래스, 함수, 모듈, 컴포넌트 등등)은 확장에는 열려있고, 변경에는 닫혀있어야 한다.

 

3. 리스코브 치환의 원칙 (Liskov Substitution Principle, LSP)

- 자식 클래스(서브 타입) 은 부모 클래스(기반 타입) 으로 교체가 가능해야 한다. 즉, 상속 관계에서는 일반화 관계, IS-A).

 

4. 인터페이스 분리의 원칙 (Interface Segregation Principle, ISP)

- 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다. 인터페이스 단일 책임에 관한 원칙.

여러 기능이 있는 인터페이스 하나를 구현하기 보다는 이를 각각 독립적인 인터페이스로  쪼개어 필요한 인터페이스만 구현하자.

5. 의존성 역전의 원칙 (Dependency Inversion Principle, DIP)

- 변하기 쉬운 것(구체적인 것) 보다 변하기 어려운 것(추상적인 것) 에 의존해야 한다.

상속한 클래스가 아니라 추상 클래스와 관계를 맺자.

 

Comments