반응형
객체 지향 설계에서 지켜야 할 5개의 소프트웨어 개발 원칙인 SOLID에 관해 정리해보고자 합니다.
OOP의 4가지 특징
SOLID를 정리하기에 앞서, 간단하게 객체 지향 프로그래밍의 특징 4가지를 살펴봅시다.
- 추상화
- 공통적인 속성이나 기능들을 추출하여 복잡한 시스템을 단순화하는 것
- 상속
- 하위 클래스가 상위 클래스의 속성과 메서드를 사용 혹은 재정의할 수 있도록 하는 것
- 다형성
- 어떤 한 요소에 여러 개념을 넣어 놓는 것
- ex) 오버라이딩, 오버로딩
- 어떤 한 요소에 여러 개념을 넣어 놓는 것
- 캡슐화
- 객체의 속성과 행위를 하나로 묶고, 그 내용의 일부를 외부로부터 감추는 것
SOLID
- SRP ( Single Responsibility Principle ) 단일 책임 원칙
- OCP ( Open/Closed Principle ) 개방-폐쇄 원칙
- LSP ( Liskov Substitution Principle ) 리스코프 치환 원칙
- ISP ( Interface Segregation Principle ) 인터페이스 분리 원칙
- DIP ( Dependency Inversion Principle ) 의존관계 역전 원칙
SRP 단일 책임 원칙
하나의 클래스는 하나의 책임(기능)만을 가져야 합니다.
OCP 개방-폐쇄 원칙
소프트웨어의 구성 요소는 항상 확장에 대해 열려있어야 하고, 수정에 대해서는 닫혀있어야 합니다.
LSP 리스코프 치환 원칙
객체는 프로그램의 정확성을 깨지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 합니다.
다형성을 지원하기 위한 원칙!!
ISP 인터페이스 분리 원칙
범용 인터페이스 하나보다는 특정 클라이언트를 위한 인터페이스로의 분리가 되어야 합니다.
DIP 의존 역전 원칙
구체화(구현체)가 아니라 추상화(인터페이스/역할)에 의존해야 합니다.
반응형