W3D1 - Springboot1

Onni·2021년 8월 17일
0

TIL

목록 보기
1/21

프로젝트 생성하기

  • CLI로 생성하기
    CLI 기반 스프링부트 다운받기

1. 아래 링크에 접속해 다운로드 받기

https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started.installing.cli.manual-installation

2. 환경변수 설정

  • 변수값은 다운로드 받은 폴더로 설정

프로젝트 진행


의존성 : 어떤 객체가 협력하기 위해 다른 객체를 필요로 할 때 두 객체 사이의 의존성이 존재하게 된다. 의존성은 실행 시점과 구현 시점에 서로 다른 의미를 가진다.
- 컴파일타임 의존성 : 코드를 작성하는 시점에서 발생하는 의존성 , 클래스 사이의 의존상
- 런타임 의존성: 애플리케이션이 실행되는 시점의 의존성(객체 사이의 의존성)

[step 2] Order가 FixedAmountVoucher을 의존하도록 코드변경

  • 수정함

  1. Order에서 FixedAmountVoucher을 의존하도록 변경
  2. discountAmount를 인자로 받아 fixedAmountVoucher를 사용하도록 생성
  3. FixedAmountVoucher 클래스를 생성하고 여기에서 할인정책을 어떻게 할건지 결정하도록 바뀌었다.
  4. OrderTest 에서 보면 10이 어떤 할인 정책을 적용했는지 알 수 없고 Order은 FixedAmoutVouher을 사용하도록 하드코딩 되어있다.
    즉 FixedAmountVoucher에 변경이 일어나면 Order에서도 변경을 해줘야 한다.=> 결합도가 강하다

결합도
하나의 객체가 변경이 일어날 때 관계를 맺고 있는 다른 객체에게 변화를 요구하는 정도

[step 3 ] 느슨한 결합도로 코드 변경

![]

  1. Voucher 인터페이스 생성
  2. 3 Voucher을 FixedAmountVoucher과 PercentDiscountVoucher가 구현
  3. Order에서 인터페이스인 Voucher을 의존하도록 변경
    할인정책이 PercentVoucher로 바껴도 Order은 수정할 필요가 없어진다.
    모든 제어의 흐름은 OrderTest가 가지고있다.
profile
꿈꿈

0개의 댓글