FireDrago
[TIL] 25/01/06 본문
운동
4.45km 33분03초 7.26 페이스
-> 안쉬고 4.45km 완주했다. 당분간은 이 정도 운동 강도를 유지해보자
공부
- 최종 코딩테스트 (java-attendance) 출석 확인, 출석 수정 기능 구현
- 스프링 복습
- 의존성 주입 (DI)을 통해 클라이언트 코드는 로직의 실행만 담당한다.
- 객체의 생성과 의존관계 설정은 스프링이 담당한다. (흐름 제어 -> 프레임 워크와 라이브러리의 차이)
- 이를통해 SRP(단일 책임 원칙), DIP(의존성 역전 원칙), OCP(개방 폐쇄 원칙)에 맞는 개발이 가능해진다.
public class OrderServiceImpl implements OrderService {
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
}
@Override
public Order createOrder(Long memberId, String itemName, int itemPrice) {
Member member = memberRepository.findById(memberId);
int discountPrice = discountPolicy.discount(member, itemPrice);
return new Order(memberId, itemName, itemPrice, discountPrice);
}
}
@Configuration
public class AppConfig {
@Bean
public MemberService memberService() {
return new MemberServiceImpl(memberRepository());
}
@Bean
public OrderService orderService() {
return new OrderServiceImpl(
memberRepository(),
discountPolicy());
}
@Bean
public MemberRepository memberRepository() {
return new MemoryMemberRepository();
}
@Bean
public DiscountPolicy discountPolicy() {
return new FixDiscountPolicy();
}
}
'회고' 카테고리의 다른 글
| [TIL] 25/01/14 (0) | 2025.01.14 |
|---|---|
| [TIL] 25/01/09 (0) | 2025.01.09 |
| [TIL] 25/01/08 (0) | 2025.01.08 |
| [TIL] 25/01/07 (0) | 2025.01.07 |
| [10/27] 오늘의 회고 (1) | 2024.10.27 |
