SOLID 5원칙
포스트
취소

SOLID 5원칙

                        • *객체 지향 설계의 5원칙 (SOLID) * - * - * * - * * - _ * “응집도를 높이고, 결합도를 낮춰라 (High Cohesion, Loose Coupling)

SRP (단일 책임 원칙) “어떤 클래스를 변경해야 하는 이유는 하나 뿐이다.” 클래스/속성/메서드/패키지/모듈/프레임워크 등에도 적용된다. 장점: 재사용성이 좋아진다. A,B 기능으로 나누어져 있으면, 다른 클래스에서 A기능만 필요한 경우에는 A만 가져다 쓸 수 있는 모듈이 된다. 객체는 단 하나의 책임만 가져야 한다. 이 객체가 가장 잘 수행할 수 있는 책임을 할당해야 하며 수반되는 모든 일을 자신만이 수행 할 수 있으면 좋다.

OCP “확장은 열려있고, 변경은 닫혀있다” 유지보수성이 좋아진다. JDBC에서 DB를 mysql 에서 oracle 로 바꾸어도 connection 설정 부분만 바꾸면 된다. 자바 app은 JDBC 인터페이스로 인해 변화에 영향을 받지 않는다. 변하는 것과 변하지 않는 것을 구분해야 한다.

LSP (리스코프 치환 원칙) “서브 타입은 기반 타입으로 변경할 수 있어야 한다.(상속)” 고래 -> 포유류

ISP (인터페이스 분리 원칙) “자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안된다. 인터페이스는 최소한의 메서드만 제공해야 한다.

DIP (의존 역전 원칙) “자신보다 변경되기 쉬운 것들에 의존하지 않는다.” 변하기 어려운 상위 클래스/인터페이스/ 추상클래스에 의존하라.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.