객체지향 2

스프링 기본원리 - 객체지향 원리 적용

이번에는 기존에 작성한 '정액 할인 정책'에서 -> '정률 할인 정책'을 적용하기 위해 '정률 할인 정책' 구현체를 작성하고, 지금까지 작성된 코드 중 SOLID 원칙에 위배되는 점을 찾아 고쳐보겠습니다. DiscountPolicy라는 인터페이스에 '정액 할인 정책' / '정률 할인 정책' 구현체를 만들어 놓고 적용되는 정책에 따라 조립하듯 끼워넣기만 하면 됩니다. RateDiscountPolicy discountPercent라는 할인율은 10%으로 정해두고 DiscountPolicy 인터페이스에서 선언한 메서드인 discount를 재정의하기 위해 Overide 어노테이션을 붙입니다. 이 역시도 VIP인 경우 10%할인 그 외 BASIC인 경우 할인 적용 X를 하기 위해 IF문을 작성해주고 discoun..

스프링 2024.02.13

스프링 기본원리 - SOLID 원칙 /주문과 할인 도메인 설계

지난 시간에는 회원 / 회원 서비스에 대한 도메인 설계 및 구현을 스프링 기능을 제외하고 순수 자바코드로 진행했었는데, 이렇게 짠 코드에는 어떤 문제가 있는지 살펴보겠습니다. 어떠한 문제가 있는지 알아보기 위해서는 객체지향 SOLID 원칙에 대해서 먼저 알아봐야합니다. SOLID는 객체지향 프로그래밍에서 다섯 가지 설계 원칙을 나타냅니다. 이 원칙은 소프트웨어 설계의 유지보수성, 확장성, 가독성, 재사용성 등을 향상시키는데 목적을 두고 있습니다. 1. 단일 책임 원칙(SRP) - 클래스는 하나의 책임만 가져야 한다. 2.개방/폐쇄 원칙(OCP) - 소프트웨어 엔티티는 확장에는 열려있고, 변경에는 닫혀있어야 한다. -새로운 기능을 추가할 때 기존의 코드를 변경하지 않고 확장할 수 있어야 한다. 여기서 보면..

스프링 2024.02.12