본문 바로가기
Spring/Spring-detail

좋은 객체 지향 설계의 5가지 원칙(SOLID)

by YoonJong 2022. 9. 14.
728x90

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

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

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

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

DIP : 의존관계 역전 원칙 ( Dependency inversion priciple )

 

SOLID 란 객체 지향 프로그램을 하면서 지켜야하는 5대 원칙이다.

해당 원칙을 지키면 시간이 지나도 변경이 용이하고, 유지보수와 확장이 쉬운 소프트웨어를 개발하는데 도움이 된다.

 


SRP 단일 책임 원칙

- 한 클래스는 하나의 책임(기능)만 가져야 한다.

- 클래스를 변경하는 이유는 단 하나여야 한다.

 

 

OCP 개방-폐쇄 원칙

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

- 기존의 코드를 변경하지 않고 기능을 수정하거나 추가할 수 있도록 설계해야 한다.

 

LSP 리스코프 치환 원칙

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

- 상속 관계에서는 일반화 관계 (IS -A) 가 성립해야 한다. 

EX) 고래는 포유류 이다. 참새는 조류이다.

 

ISP 인터페이스 분리원칙

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

- 클라이언트는 자신이 사용하는 메소드에만 의존해야 한다.

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

 

DIP 의존관계 역전 원칙

- 추상화에 의존해야지, 구체화에 의존하면 안된다.

 

 

 

 

참고 :

-인프런 스프링 핵심원리

- https://devlog-wjdrbs96.tistory.com/380

 

[Java] 객체지향 설계 5원칙 - SOLID란 무엇일까?

객체지향 설계 5원칙 SOLID 객체 지향 설계의 정수라고 할 수 있는 5원칙이 집대성됐는데, 바로 SOLID 입니다. SRP(Single Responsibility Principle): 단일 책임 원칙 OCP(Open Closed Priciple): 개방 폐쇄 원칙..

devlog-wjdrbs96.tistory.com

- https://velog.io/@haero_kim/SOLID-%EC%9B%90%EC%B9%99-%EC%96%B4%EB%A0%B5%EC%A7%80-%EC%95%8A%EB%8B%A4

 

SOLID 원칙, 어렵지 않다!

객체지향 프로그래밍 설계 원칙에 대해 알아보기

velog.io

 

728x90

댓글