Software architecture

SOLID - 객체 지향 디자인을 위한 5가지 기본 원칙

TechNote.kr 2020. 12. 6. 21:41
728x90

 

유지가능(Maintainable)하고 확장가능(Extensible)한 시스템을 위한 객체 지향 디자인을 위한 5가지 기본 원칙

 

SRP: Single Responsibility Principle

OCP: Open-Closed Principle

LSP: Liskov Substitution Principle

ISP: Interface Segregation Principle

DIP: Dependency Inversion Principle


SRP: Single Responsibility Principle

하나의 모듈은 변경을 위한 하나의 이유만 있어야 한다. 

모듈을 변경해야 할 이유가 두개 이상이라면 해당 모듈은 두개 이상의 책임을 가지고 있다는 의미로 SRP를 지키지 못한 것이다. 

 

OCP: Open-Closed Principle

수정에는 닫혀 있고, 확장에는 열려있다. 

즉, 수정 없이 모듈의 기능을 확장할 수 있어야 한다는 것이다.

 

LSP: Liskov Substitution Principle

파생 모듈은 기본 모듈로 교체 가능해야 한다.

 

ISP: Interface Segregation Principle

Client는 사용하지 않는 Interface에 의해 영향을 받지 않아야 한다.

범용 Interface 하나를 사용하기 보다는 응집도가 높은 여러개의 interface로 분리하여 사용해야 한다.

 

DIP: Dependency Inversion Principle

구현이 아니라 Interface에 의존해야 한다. 

 


응집도: SRP 와 관련

규모: SRP 와 관련

복잡도: DIP 와 관련

결합도: LSP, ISP, DIP와 관련

 

 

 

728x90