티스토리 뷰

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

1. SRP 단일 책임 원칙

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

하나의 책임에 대한 판단의 기준은 ?

  • 변경이 있을 때 파급 효과가 적으면 SRP를 잘 따른것

2. OCP 개방-폐쇄 원칙

  • 확장에는 열려 있으나 변경에는 닫혀 있어야함.

문제점

  • 다형성을 사용하기 위해서 구현 객체를 변경하려면 클라이언트 코드를 변경해야함

→ 이를 해결하기 위해서 DI, IOC 컨테이너와 같은 것들이 필요

3. LSP 리스코프 치환 원칙

  • 하위 클래스의 객체를 상위 클래스의 객체에 넣어도 기능적으로 문제없이 동작되어야함
예시를 찾아보니 정사각형과 직사각형의 관계를 대입해서 생각해보면 단순히 정사각형이 직사각형의 상속을 받는다고 생각할 떄 직사각형의 생성자에서 비롯한 문제에 대해 다른 어떤 조치가 필요성을 느낄 수 있는 부분이 이 원칙과 관련이 있었습니다.

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

  • 클라이언트가 사용하는 인터페이스를 하나가 아닌 여러개로 잘게 나누어 만들어야함

5. DIP 의존관계 역전 원칙

  • 추상화에 의존해야함 = 구현 클래스가 아닌 역할(인터페이스)에 의존해야함

정리

객체지향에서 다형성 만으로는 OCP, DIP를 지킬 수 없다. → 다른 무언가가 더 필요하다.

'Study > Spring' 카테고리의 다른 글

스프링 정리(1)  (0) 2021.08.03
IOC, DI, 컨테이너  (0) 2021.01.14
회원 도메인 개발 (순수 자바코드로)  (0) 2021.01.14
좋은 객체 지향 프로그래밍이란 ?  (0) 2021.01.05
스프링 시작 :)  (0) 2021.01.05
댓글