전체 글
CHAPTER 04.팩토리 패턴
팩토리 패턴 이해를 위한 간단한 문제 제안피자를 만드는 아래와 같은 코드가 있다고 가정해보겠습니다.public class PizzaStore { public Pizza orderPizza(String type) { Pizza pizza; if (type.equals("cheese")) { pizza = new CheesePizza(); } else if (type.equals("pepperoni")) { pizza = new PepperoniPizza(); } else if (type.equals("clam")) { pizza = new ClamPizza(); } else if (type.equals("veggie")) { pizza = new VeggiePizza(); } pizza.prepare();..
CHAPTER 03.데코레이터 패턴
데코레이터 패턴 이해를 위한 간단한 문제 제안 2022년 스타버즈 커피는 커피 브랜드를 대표하는 브랜드로 성장해있습니다. 1971년 스타버즈는 지금처럼 회사가 커질줄 몰랐고 메뉴도 지금처럼 많지 않았습니다. 사업을 시작할 무렵에는 아래와 같은 설계 구조로 이뤄져 있습니다. Beverage는 음료를 나타내는 추상클래스입니다. 매장에서 판매되는 모든 음료는 이 클래스의 서브클래스가 됩니다. Beverage의 cost()메소드는 추상 메소드입니다. 서브클레스에서는 이 메소드를 구현해야합니다. Beverage의 description이라는 인스턴스변수는 각 서브클래스에서 설정되며 커피에 대한 설명 정보가 문자열로 저장됩니다. description이라는 변수 정보는 getDescription() 메소드를 통해 정보..
CHAPTER 02.옵저버 패턴
옵저버 패턴 이해를 위한 간단한 문제 제안 독자에게 기상 조건인 온도, 습도, 기압 3가지의 변화를 감지하는 시스템을 만들라는 요구사항이 들어옵니다. 위의 3가지 항목들은 실시간으로 갱신되야 합니다. 디스플레이를 손쉽게 추가할 수 있어야 합니다.이 기기는 다른 추가사항 또한 바로 넣을 수 있도록 확장 가능해야 합니다. 요구 사항을 좀 더 자세히 설명해보겠습니다. 저희들이 구현해야하는 것은 WeatherData 객체입니다. 가상 스테이션은 습도, 온도, 기압 센서로부터 데이터를 받습니다. 이때 변경되는 데이터는 실시간으로 받기 때문에 WeatherData객체는 실시간으로 데이터를 변경해줘야합니다. WeatherData객체는 가상 스테이션과 통신해서 기상 데이터를 가져옵니다. WeatherData객체는 디스..