728x90 반응형 CS Study/디자인패턴84 2021.11.18_팩토리메소드패턴05.자바와스프링에서찾아보는패턴 팩토리 메소드 패턴 실무에서 어떻게 쓰이나? 단순한 팩토리 패턴 매개변수의 값에 따라 또는 메소드에 따라 각기 다른 인스턴스를 리턴하는 단순한 버전의 팩토리 패턴 java.lang.Calendar 또는 java.lang.NumberFormat 스프링 BeamFactory Object 타입의 Product를 만드는 BeamFactory라는 Creator! 단순한 팩토리 패턴 하나의 구현체 두고 그것에 대해서 구현체를 만드는 모양임 SimpleFactory public class SimpleFactory{ public Object createProduct(String name){ if(name.equals("Whiteship")){ return new Whiteship(); }else (name.equals.. 2021. 11. 18. 2021.11.18_팩토리메소드패턴04.장점과단점 팩토리 메소드 패턴 복습 구체적으로 어떤 것을 만들어지는 서브 클래스가 정함 팩토리 메소드 패턴을 적용했을 때의 장점은? 단점은? 확장에 열려있고 변경에 닫혀있는 객체지향 원칙을 설명하세요. 자바8에 추가된 default 메소드에 대해 설명하세요. 팩토리 메소드 패턴을 적용했을 때의 장점은? 단점은? 장점 확장에 열려있고 변경에 닫혀있는 객체지향 원칙을 이용해서 그런 과정이 담겨있는 것 건들지 않고 새로운 인스턴스를 이용해서 확장이 가능한것이 장점이고 product ,create의 느슨한 결합으로 가져갔기 때문에 인스턴스의 관계를 느슨하게 가져감 기존 코드를 건드리지 않고 확장가능해서 기존 코드가 복잡해지지 않음 단점 처음 봤던 코드를 보면 클래스가 3개 뿐이였지만 각자의 역활을 나누다 보니 클래스가 늘.. 2021. 11. 18. 2021.11.18_팩토리메소드패턴03.인터페이스적용하기 2021.11.18_03.인터페이스적용하기 Client.class public class Client { public static void main(String[] args) { Client client = new Client(); Ship whiteship = new WhiteshipFactory().orderShip("Whiteship","oksos@naver.com"); System.out.println(whiteship); Ship black = new BlackshipFactory().orderShip("Blackship","oksos0817@naver.com"); System.out.println(blackship); } } 이전에 소스는 Client부분이 수정이되었다. Client.class.. 2021. 11. 18. 2021.11.15_팩토리메소드패턴02.패턴적용하기 아무리 변경해도 코드가 같아야함 Whiteshipfactory.class |before public class WhiteshipFactory { public static Ship orderShip(String name, String email) { // validate if (name == null || name.isBlank()) { throw new IllegalArgumentException("배 이름을 지어주세요."); } if (email == null || email.isBlank()) { throw new IllegalArgumentException("연락처를 남겨주세요."); } prepareFor(name); Ship ship = new Ship(); ship.setName(name); .. 2021. 11. 15. 이전 1 ··· 16 17 18 19 20 21 다음 728x90 반응형