순수한 자바로 먼저 공부!

 

인텔리제이를 이용 Java 11 Gradle 이용

 

좋은 객체 지향 설계의 5가지 원칙을 SOLID라고 함! 

SOLID란?

SRP : 단일 책임 원칙 

- 하나의 클래스는 하나의 책임만 가진다, 중요한 기준은 변경, 변경이 있을 때 파급효과가 적으면 책임 원칙을 잘 따름

OCP : 개방-폐쇄 원칙

- 소프트웨어 요소는 확장에는 열려 있어야 하나, 변경에는 닫혀있어야 함, 다형성 활용

구현 객체를 변경하려면 클라이언트 코드를 변경해야 한다

LSP : 리스코프 치환 원칙

- 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀수 있어야함

- 자동차 엑셀을 밟으면 앞으로 가는 기능, 뒤로 가게 구현하면 LSP를 위반한 것 , 느리더라도 앞으로 가게

ISP : 인터페이스 분리 원칙

- 특정 클라이언트를 위한 인터페이스를 분리함 자동차 인터페이스 -> 운전 인터페이스, 정비 인터페이스 등등

- 인터페이스가 명확해지고, 대체 가능성이 높아짐

DIP : 의존관계 역전 원칙

- 프로그래머는 "추상화에 의존해야지, 구체화에 의존하면 안됨" 쉽게 구현 클래스에 의존하지말고, 인터페이스에 의존

 

 

설계를 간단하게 만들어 본다.

 

비즈니스 요구 사항과 설계

회원

- 회원 가입을 하고 조회 가능

- 회원은 일반과 VIP 두 가지 등급

- 회원 데이터는 자체 DB 구축 가능, 외부 시스템과 연동 가능 (미확정)

 

주문과 할인 정책

- 회원은 상품 주문 가능

- 회원 등급에 따라 할인 정책 적용 가능

- 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인 적용 (나중에 변경 가능)

- 할인 정책은 변경 가능성이 높음. 회사의 기본 할인 정책을 아직 안정했음, 오픈 직전까지 미룰 수 있음

 

일단 회원의 클래스를 만들고

인텔리제이 에서는 Enum으로 등급을 만들 수 있다.

 

설계에 맞게 코드를 작성하고, 테스트 코드를 작성할 줄 알아야 한다.

+ Recent posts