스프링/1. 스프링 핵심 원리 47

10강. 주문할인정책 구현

public interface DiscountPolicy { int discount(Member member, int price); } public class FixDscountPolicy implements DiscountPolicy { private int discountFixAmount = 1000; @Override public int discount(Member member, int price) { if(member.getGrade()== Grade.VIP){ return discountFixAmount; }else { return 0; } } } 고정, Percent 바뀔지 모르니 인터페이스. public class Order { private Long memberId; private Stri..

6강. 회원 도메인 설계

비즈니스 요구사항과 설계 회원 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 주문과 할인 정책 회원은 상품을 주문할 수 있다. 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있 다.) 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 최악의 경우 할인을 적용하지 않을 수 도 있다. (미확정)

3강. 좋은 객체지향의 원칙 5가지, SOLID

SRP: 단일 책임 원칙(single responsibility principle) 변경이 있을때 파급이 적으면 잘 따른 것 OCP: 개방-폐쇄 원칙 (Open/closed principle) 확장에는 열려 있으나 변경에는 닫혀있어야 한다. 다형성. 사실 상 변경을 안하기는 힘들고, 대신 이 역할의 해주는, 일종의 motherboard 라고 생각하면 됨. 스프링 컨테이너가 이 역할을 해줌. LSP: 리스코프 치환 원칙 (Liskov substitution principle) 똑같은 규약을 지켜야 함. 예를 들어, 엑셀을 밟으면 앞으로 가게끔 설계한 인터페이스의 함수는, 무한히 구현 하더라도 그 방향을 따라야 함. 뒤로 가게 하거나 다른 뜬금없는 기능을 넣으면 안됨. ISP: 인터페이스 분리 원칙 (Int..

2강. 좋은 객체지향 프로그래밍이란?

객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프 트웨어 개발에 많이 사용된다. 레고블럭 다형성 마치 이런.. 부품을 갈아 끼울 수 있는.. 운전자가 자동차를 바꿔도 계속 운전을 할 수 있는 것 처럼.. 특정 부분을 다른걸 따로 새로 만든 다음에, 대신 갈아끼우기만 해도 제대로 굴러간다.. 자동차 인터페이스.. 에서 구현.. 갈아끼운다.. 이것은.. 역할과 구현으로 나누었기 때문에 가능하다.. 만드는 자는 그저 역할.. 어떤 역할만 해야 하는지 알면 된다. 어떤 행동을 하게끔 해야 하는 지.. 어떤 값을 줘야 하는 지.. 역할 = 인터페이스 구현 = 객체, 클래스 객체 설계시, 역할(인터페이스) 먼저 부여. 그 역할을 수행할 객체 구현 프로그래밍을 할 때, 각각의 역할..