Singleton 패턴인스턴스가 하나만 존재하는 것을 보증하는 패턴`singleton`이란 요소가 하나뿐인 집합을 말한다. Singleton 클래스package singleton;public class Singleton { private static Singleton singleton = new Singleton(); private Singleton() { System.out.println("인스턴스를 생성했습니다."); } public static Singleton getInstance() { return singleton; }}인스턴스를 하나만 만들 수 있다.Singleton은 static 필드로 정의되고 Singleton 클래스의 인스턴스에서 초기..
Factory Method Pattern인스턴스 생성 방법을 상위 클래스에서 결정하되, 구체적인 클래스 이름은 결정하지 않는다.인스턴스 생성을 위한 뼈대(프레임워크)와 실제 인스턴스를 생성하는 클래스를 나누어 생각할 수 있다. Factory Method Pattern 예제신분증 카드를 만드는 공장`Product` 추상 메서드 use만 정의한 추상 클래스`Factory` 메서드 create를 구현한 추상 클래스`IDCard` 메서드 use를 구현한 클래스`IDCardFactory` 메서드 createProduct, registerProduct를 구현한 클래스`Main` 동작 테스트용 클래스 Product 클래스package factory_method.framework;public abstract class..
Template Method Pattern상위 클래스에서 처리의 뼈대를 결정하고 하위 클래스에서 그 구체적 내용을 결정하는 패턴템플릿이란 구멍이 난 얇은 플라스틱 판으로, 템플릿 구멍을 보면 어떤 형태인지 알 수 있지만 실제로 어떤 문자가 될지는 구체적인 필기 도구가 정해지기 전까지는 모른다. 사인펜, 연필 등 어떤 도구를 사용하는가에 따라 달라지기 때문이다. Template Method Pattern 예제문자나 문자열을 5번 반복해서 표시하는 프로그램`AbstractDisplay` 메서드 display만 구현된 추상 클래스`CharDisplay` 메서드 open, print, close를 구현하는 클래스`StringDisplay` 메서드 open, print, close를 구현하는 클래스`Main` 동..
Iterator 패턴일련의 데이터 집합에 대하여 순차적인 접근을 지원하는 패턴for문에서 사용되는 변수 `i`의 기능을 추상화하여 일반화한 것iterator를 '반복자'라고도 한다.for(int i=0; i Iterator 패턴 예제책장에 책을 넣고, 책 이름을 차례대로 표시하는 프로그램`Iterable` 집합체를 나타내는 인터페이스`Iterator` 처리를 반복하는 반복자를 나타내는 인터페이스`Book` 책 클래스`BookShelf` 책장 클래스`BookShelfIterator` 책장 검색 클래스`Main` 동작 테스트용 클래스 Iterable 인터페이스package Iterator;// Iterator를 만들기 위한 것// iterator() 메서드를 사용해 Iterator() 인터페이스를 구현한 클..