스프링 핵심 원리 - 객체 지향 설계와 스프링 #01

박정현·2022년 8월 9일
0

spring legacy

목록 보기
4/4

좋은 객체 지향 프로그래밍

다형성

  • 역할, 구현으로 세상을 구분
    ex01) 운전자,자동차(k3,아반떼,테슬라) 새로운 차가 출시해도 그차에대해서 클라이언트가 따로 공부할 필요는없다.
    ex02) 로미오(장동건,원빈) ,줄리엣(김태희,송혜교) 역할이 있고 배우는 변경(대체)가 가능하다.
    이러한것이 변경에 용이하다는 의미이다.

  • 자바 언어의 다형성을 활용
    - 역할 = 인터페이스
    - 구현 = 인터페이스를 구현한 클래스, 구현 객체

  • 객체를 설계할 때 역할과 구현을 명확히 분리한다.

  • 인터페이스를 안정적으로 잘 설계하는 것이 중요하다!

SOLID

  • SRP : 단일 책임 원칙
  • OCP : 개방 - 폐쇄 원칙
  • LSP : 리스코프 치환 원칙
  • ISP : 인터페이스 분리 원칙
  • DIP : 의존관계 역전 원칙

SRP 단일 책임 원칙

  • 한 클래스는 하나의 책임만 가져야 한다
  • 중요한 기준은 변경, 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것이다.

OCP 개방-폐쇄 원칙

  • 소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀 있어야한다.
  • 다현성을 활용하자

LSP 리스코프 치환 원칙

  • 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀수 있어야한다.
  • es) 엑셀은 앞으로 가라는 기능, 뒤로 가게 구현하면 LSP 위반

ISP 인터페이스 분리 원칙

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

DIP 의존관계 역전 원칙

  • 프로그래머는 추상화에 의존해야지, 구체화에 의존하면 안된다.

  • MemeberRespository m = new MemoryMemberRepository();

  • MemberRepitory에 의존해야하지만 new MemoryMemberRepository로 인해 구체화된 것에 의존하고있어서 DIP 위반

스프링

스프링 이야기에 객체 지향 이야기가 나오는 이유?

스프링은 다음 기술로 다형성 + OCP,DIP를 가능하게 지원을 해준다

  • DI : 의존관계,의존성 주입
  • DI 컨테이너 를 제공함

김영한 님의 스프링 핵심 원리 - 기본편을 참고하여 정리한 글입니다.
링크텍스트

profile
빠샤

0개의 댓글