목록스프링 (12)
개발의 흔적
비즈니스 요구사항, 설계 회원 , 주문 , 할인정책 // 역할과 구현으로 인터페이스 구현 회원 - 일반,VIP 등급이 있음 - 회원데이터는 자체 DB, 외부 시스템과 연동 할수도있음 (미확정); 주문과 할인 정책 - 상품을 주문할수있다. - 회원 등급에 따라 할인 정책을 적용할수있다. - 모든 VIP는 1000원 할인 고정금액인상황(나중에 변경가능) - 할인 정책은 변경가능성이 높다.(미확정) 결정하기 어려운 부분이 있다. 기획쪽에서 나오기전까지 무기한으로 기다릴순없고, 객체지향 설계방법으로 인터페이스를 만들고 구현체를 언제든지 갈아끼울수 있게끔 설계한다.
스프링 셋팅 java11 graddle 인텔리제이 - 구독
스프링은 다형성 + OCP,DIP를 가능하게 지원 객체들을 스프링 컨테이너에서 넣어두고 사용가능 DI: 의존관계,의존성 주입 모든 설계에 역할과 구현을 분리하자. 예를 들어 배역만 만들고,배우는 언제든지 유연하게 변경할 수 있도록 만드는것이 좋은 객체 지향설계이다. 모든설계에 인터페이스를 부여하자. 인터페이스를 다넣고 구현 클래스를 구현하자. 실무 고민 인터페이스를 도입하면 추상화라는 비용이 발생한다. 기능을 확장할 가능성이없다면, 구체클래스를 직접 사용하고, 향후 꼭 필요할 떄 리팩터링해서 인터페이스를 도입하는것도 방법이다.
SRP: 단일 책임 원칙 - 단일원칙 - 한 클래스는 하나의 책임만 가져야한다. * OCP: 개방-폐쇄 원칙 - 확장에는 열려 있으나 변경에는 닫혀 있어야한다. - 다형성을 활용해보자 - 별도의 설정자가 필요함(스프링 컨테이너가 해줌) LSP: 리스코프 치환 원칙 - 기능적으로 보장이 필요하다. - 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀수있어야함 ISP : 인터페이스 분리원칙 - 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다. - 인터페이스가 명확해지고, 대체 가능성이 높아진다. * DIP 의존관계 역전 원칙 프로그래머는 "추상화에 의존해야지,구체화에 의존하면 안된다." 의존성 주입은 이원칙을 따르는 방법중 하나이다. 역활에 의존하..