프로그래밍 언어 공통/OOP

OOP 설계 원칙 SOLID

Raccoon2125 2022. 5. 29. 02:54

1. SRP; Single Responsibility Principle : 단일 책임의 원칙

 - 하나의 기능을 수행하는 함수와 같이 클래스도 하나의 책임을 가지고 있어야 한다.

 - 다른 클래스와의 관계성이 낮으므로 버그 대처가 쉬워진다.

 → 응집도 High, 결합도 Low

 

2. OCP; Open-Closed Principle : 개방 폐쇄의 원칙

 - (close) 상위 클래스의 메서드는 내용이 변경되지 않도록 공통적인 기능을 가져야 하고 수정을 최소화해야 한다.

 - (open) 하위 클래스의 메서드는 상위 클래스의 메서드 기능에서 확장될 수 있어야 한다.

 

3. LSP; Liskov Substitution Principle : 리스코프 대체의 원칙

 - 기반 클래스는 파생 클래스로 대체할 수 있다.

 

4. ISP; Interface Segregation Principle : 인터페이스 분리의 원칙

 - 하나의 범용 인터페이스보다 특화된 여러 인터페이스를 구성하는 것이 좋다.

 → 의존성 약화 >> 추가/수정/제거 최소화

 

5. DIP; Dependency Inversion Principle : 의존관계 역전의 원칙

 - 의존관계 표현 시 하위클래스가 아닌 상위클래스에 의존해야 한다.

 - 구체화된 클래스(하위)로부터의 의존성을 줄임.