🪩/기타

객체 지향 설계 5원칙 (SOLID)

S0 2024. 2. 22. 08:03

 

SOLID란 객체 지향 프로그래밍 설계에 필요한 다섯 가지 원칙의 앞글자를 따서 만든 것이다.

 

 

단일 책임의 원칙 (Single Responsibility Principle, SRP)

하나의 클래스는 하나의 책임만 가져야 한다.

(= 한가지 일만 해야한다)

클래스나 모듈을 변경할 이유는 하나뿐이어야 한다.

 

 

개방-폐쇄 원칙 (Open-Closed Principle, OCP)

(개체의 행위)확장에는 열려있고, (개체자체)변경에는 닫혀있어야 한다.

클래스의 기존 코드에 영향을 주지 않고 소프트웨어에 새로운 기능이나 구성요소 추가가 가능해야함

인터페이스나 상속을 사용하면 부모클래스의 수정을 이용하지 않고 사용 가능

 

 

리스코프 치환 원칙 (Liskov substitution principle, LSP)

서브(자식)타입은 슈퍼(부모)타입을 대체할수 있어야함 

자식클래스는 부모클래스의 기능을 수정하지 않고도 부모클래스화 호환 가능해야함

 

 

인터페이스 분리 원칙 (Interface segregation principle, ISP)

해당클래스에게 무의미한 메소드의 구현을 막아야함

인터페이스는 필요한 만큼만 정의하여 최대한 작게 유지해야함

 

 

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

추상화에 의존해야 하며, 구체화에 의존해서는 안된다.

(= 하위 수준 모듈(구현 클래스)보다 상위 수준 모듈(인터페이스)에 의존해야 한다)