04
12

각각의 원칙의 앞글자를 따서 SOLID 원칙이라고 부른다.

 

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

 - 클래스는 하나의 책임만을 가진다.

 

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

 - 확장에는 열려있고, 변경에는 닫혀있어야 한다.

 - 추가사항이 발생하더라도 기존 구성요소는 수정이 일어나지 말아야 한다.

 

리스 코브 치환의 원칙(LSP : Liskov Substitution Principle) 

 - 상위 타입의 객체는 언제나 하위 타입의 객체로 치환할 수 있어야 한다.

 - 즉, 상속은 is-A 관계일 때만 상속관계로 존재해야 한다.

 

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

 - 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다.

 - 범용 인터페이스를 만들지 말고 적정한 기능에 따라 분리시켜야 한다. 

 

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

 - 고수준 모듈은 저수준 모듈에 직접 의존해서는 안된다.

 - 클래스를 참조할 때 구체적인 클래스보다는 인터페이스나 추상 클래스와 의존 관계를 맺도록 해야 느슨하고 유연한 시스템이 된다.

 - 의존 관계를 맺을 때, 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 변화가 거의 없는 것에 의존하라는 원칙.

- 상위클래스가 하위클래스 하나하나를 if(A is subA)... 식으로 코드를 짜면 안된다는 소리.

 

 

 

COMMENT