SOLID 원칙 - OOP 5대 원칙

CHEESE·2021년 8월 24일
0

SRP

단일 책임 원칙
클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다.
응집도는 높고 결합도는 낮은 프로그램

높은 응집도

변화가 일어날 때 해당 모듈에서 변하는 부분이 크다.
즉, 변경이 일어날 때 모듈의 많은 부분이 함께 바뀐다.

낮은 결합도

책임과 관심사가 다른 오브젝트 또는 모듈과는 느슨하게 연결된 형태를 유지하는 것
최소한의 방법만 간접적인 형태로 제공하고, 나머지는 서로 독립적이고 알 필요도 없게 만들어주는 것

=> 변화에 대응하는 속도가 높아지고 구성이 깔끔해진다.
=> 확장에 용이하다.

OCP

개방-폐쇄 원칙
기존의 코드를 변경하지 않고 기능을 수정하거나 추가할 수 있도록 설계할 것
설계할 때 변경되는 것이 무엇인지에 초점을 맞출 것
=> interface

LSP

리스코프 치환 원칙
자식 클래스는 부모 클래스에서 가능한 행위를 수행할 수 있어야 한다.

ISP

인터페이스 분리 원칙
클래스에서 자신이 사용하지 않는 인터페이스는 구현하지 않아야 한다.
하나의 인스턴스 보다 여러 개 구체적인 인터페이스를 설계하는 것이 낫다.

DIP

의존 역전 원칙
의존 관계를 맺을 때, 변하기 쉬운 것보다 변하기 어려운 것에 의존해야 한다.

0개의 댓글