본문 바로가기

웹 프로그래밍/스프링

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

SOLID

-SRP(Single responsibility principle) 단일 책임 원칙

    -중요한 기준은 변경임(변경시 파급효과가 적어야함)

 

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

    -확장에는 열려있으나 변경에는 닫혀있음(역할과 구현)

    -그러나 구현 객체를 변경하려면 클라이언트 코드를 변경해야함(OCP 위반) 

 

-LSP(Liskov substitution principle) 리스코프 치환 원칙

    -인터페이스 규약,의도 맞게 구현

 

-ISP(Interface segregation principle) 인터페이스 분리 원칙

    -범용 인터페이스 하나보다 여러개의 인터페이스가 더 좋음(독립, 명확, 대체가능성)

 

-DIP(Dependency inversion principle) 의존관계 역전 원칙

    -구체화(구현 객체)가 아니라 추상화(인터페이스)에 의존 해야함

    -클라이언트가(MemberService) 구현 클래스(MemoryMemberRepository)를 직접 선택해야한다면 DIP 위반

 

정리

-다형성 만으로는 OCP,DIP를 지킬수 없음

 

 

객체 지향 설계와 스프링

스프링은 DI(Dependency Injection), DI 컨테이너 제공으로 다형성 + OCP, DIP를 가능하게 지원

    -> 클라이언트 코드의 변경 없이 기능 확장

'웹 프로그래밍 > 스프링' 카테고리의 다른 글

스프링 컨테이너와 스프링 빈  (0) 2023.02.14
IoC, DI, 컨테이너  (0) 2023.02.14
AppConfig  (0) 2023.02.14
객체 지향 프로그래밍  (0) 2023.02.12
스프링 이란?  (0) 2023.02.12