CS

객체지향 설계 원칙 - SOLID

coffee. 2024. 1. 25. 19:19

1.SRP:단일책임 원칙

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

-변경이 있을때 파급효과가 적으면 단일책임을 잘 따른 것

-응집도는 높이고 결합도는 낮추고

 

2.OCP:개방 폐쇄 원칙

"소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀있어야 한다."

-요구사항의 변경이나 추가사항이 발생하더라도, 기존 구성요소는 수정이 일어나지 않아야하며

쉽게 확장이 가능하여 재사용 할 수 있어야한다.

-OCP를 가능케 하는 매커니즘은 추상화와 다형성

 

3.LSP:리스코프 치환 원칙

"서브타입은 언제나 자신의 기반 타입으로 교체할 수 있어야 한다."

-프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야한다.

 

4.ISP:인터페이스 분리 원칙

"클라이언트는 자신이 사용하지 않는 메소드에 의존 관계를 맺으면 안 된다."

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

-특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.

-SRP가 클래스의 단일책임을 강조했다면 ISP는 인터페이스의 단일책임을 강조한다.

 

5.DIP:의존관계 역전 원칙

"추상화된 것은 구체적인것에 의존하면 안된다. 구체적인 것이 추상화 된 것에 의존해야한다."

-구현 클래스에 의존하지 말고,인터페이스에 의존해라.