JAVA/디자인패턴 Leejisoo 2018. 5. 2. 22:05
Builder 패턴이란?복잡한 것을 만들 때는 전체를 한꺼번에 만들기보다는 작게 분리하여 만든 후 다시 합치는 것이 편리하다. builder 패턴은 복잡한 인스턴스를 조립하여 만드는 구조로, 복합 객체를 생성할 때 객체를 생성하는 방법(과정)과 객체를 구현(표현)하는 방법을 분리한다. 따라서 이 패턴은 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있다.Builder : Product 객체의 일부 요소들을 생성하기 위한 추상 인터페이스 제공.ConcreteBuilder : Builder 클래스에 정의된 인터페이스를 구현하며, 제품의 부품들을 모아 빌더를 복합한다.Director : Builder 인터페이스를 사용하는 객체를 합성한다.Product : 생성할 복합 객체를 표현설명만 들어면 굉장히 어..
JAVA/디자인패턴 Leejisoo 2018. 5. 2. 00:44
Singleton 패턴이란Singleton 패턴은 인스턴스를 불필요하게 생성하지 않고 오직 JVM내에서 한 개의 인스턴스만 생성하여 재사용을 위해 사용되는 디자인패턴이다. 굉장히 널리 알려져 있는 디자인패턴이고, 나역시 디자인패턴의 존재를 Sigleton패턴을 통해서 알게 되었다. 습관 반복적으로 사용하다보니 별로 생각하지 못했는데 이 Singleton패턴은 멀티스레드 환경에서 문제가 생길 가능성이 있기 때문에 Thread-safe한 Singleton을 작성하려면 약간의 학습이 필요하다. 고전적인 방식의 Singleton 패턴public class Singleton { private static Singleton instance; private Singleton(){} public static Singl..
JAVA/디자인패턴 Leejisoo 2018. 5. 1. 15:20
Strategy패턴이란Strategy패턴이란 직역하면 전략패턴의 의미로 여러 알고리즘을 하나의 추상적인 접근점(=인터페이스)을 만들어 서로 교체가능(setMethod) 하도록 구현하는 패턴이다. 말로만 설명하면 굉장히 복잡하게 느껴지지만, MVC 패턴의 DAO를 인터페이스로 선언하고 구현하거나, Spring DI를 적용하때 인터페이스를 구현하는 것 역시 모두 Strategy패턴에 속한다. Strategy패턴 UMLClient : Strategy Interface를 has a 관계로 소유하고 있는 클래스이다.Strategy Interface : Client클래스와 Strategy Implements 클래스들의 연결점이 되는 추상적인 접근점.Strategy Implements : 실제로 수행될 다양한 Str..