Book

    Head First: Design Patterns - 간단한 팩토리(Simple Factory)

    디자인 패턴: 간단한 팩토리(Simple Factory) 이 포스팅은 Head First: Design Patterns 책을 보고, 개인적으로 정리한 포스팅입니다. 피자가게 판매 시스템 피자가게에서 다음과 같은 코드로 가게를 운영하고 있다고 하자. 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(..

    Head First: Design Patterns - 데코레이터 패턴(Decorator Pattern)

    디자인 패턴: 데코레이터 패턴(Decorator Pattern) 이 포스팅은 Head First: Design Patterns 책을 보고, 개인적으로 정리한 포스팅입니다. Decorator Pattern 이란? 데코레이터 패턴(Decorator Pattern)에서는 객체에 추가적인 요건을 동적으로 첨가한다. 데코레이터는 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공한다. 데코레이터의 슈퍼클래스는 자신이 장식하고 있는 객체의 슈퍼클래스와 같다. 한 객체를 여러 개의 데코레이터로 감쌀 수 있다. 데코레이터는 자신이 감싸고 있는 객체와 같은 슈퍼클래스를 가지고 있기 때문에 원래 객체(싸여져 있는 객체)가 들어갈 자리에 데코레이터 객체를 집어넣어도 상관없다. 데코레이터는 자신이 장..

    Head First: Design Patterns - 옵저버 패턴(Observer Pattern)

    디자인 패턴: 옵저버 패턴(Observer Pattern) 이 포스팅은 Head First: Design Patterns 책을 보고, 개인적으로 정리한 포스팅입니다. Observer Pattern 이란? 옵저버 패턴(Observer Pattern)에서는 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의한다. 일대다 관계는 주제(Subject)와 옵저버(Observer)에 의해 정의된다. 옵저버 패턴을 구현하는 방법에는 여러가지가 있지만, 대부분 주제(Subject) 인터페이스와 옵저버(Observer) 인터페이스가 들어있는 클래스 디자인을 바탕으로 한다. 일대다 관계 옵저버 패턴에서 상태를 저장하고 지배..

    Head First: Design Patterns - 스트래티지(전략) 패턴(Strategy Pattern)

    디자인 패턴: 스트래티지 패턴(Strategy Pattern) 이 포스팅은 Head First: Design Patterns 책을 보고, 개인적으로 정리한 포스팅입니다. Strategy Pattern 이란? 스트래티지 패턴(Strategy Pattern)에서는 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. 스트래티지 패턴을 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 간단한 SimUDuck 애플리케이션 이 애플리케이션에서는 헤엄을 치거나, 꽥꽥거리는 소리도 내는 매우 다양한 오리 종류를 보여준다. 처음 이 시스템을 디자인한 사람들은 표준적인 객체지향 기법을 사용하여 Duck이라는 슈퍼클래스를 만든 다음, 그 클래스를 확장하여 다른 모든 종..