GOF (13) 썸네일형 리스트형 [Design Pattern] 반복자 (Iterator) 패턴 1. 개요반복자 디자인 패턴 (Iterator Design Pattern)은 컬렉션(Collection) 객체의 내부 구조에 상관없이 요소(element)들을 순차적으로 접근하고 싶을 때 사용되는 패턴이다.2. 조건요소들을 반복적으로 탐색하고자 할 때컬렉션 객체의 내부 구조에 대한 세부 정보를 노출시키지 않고자 할 때3. 다이어그램3.1. 설명Iterator요소에 순차적 접근을 허용하는 인터페이스를 정의한다.다음 요소를 반환하는 next() 메소드가 있다.다음 요소의 존재 여부를 확인하는 hasNext() 메소드가 있다.ConcreteIteratorIterator 인터페이스의 구현 클래스이다.컬렉션 객체의 내부 구조에 맞추어 요소들을 반복하고 관리한다.AggregateIterator를 생성하는 인터페이스.. [Design Pattern] 데코레이터 (Decorator) 패턴 1. 개요데코레이터 디자인 패턴 (Decorator Design Pattern)은 객체에 동적으로 새로운 기능을 추가하기 위한 패턴이다.이 패턴은 상속이 아닌 객체 래핑(Object Wrapping)하여 새로운 기능을 추가한다.2. 상황3. 다이어그램3.1. 설명Component기본 기능을 정의하는 인터페이스 이다.Decorator와 ConcreteDecorator에 의해 구현된다.ConcreteComponentComponent의 구현 클래스 이다.Decorator추상 클래스 이다.Component의 구현 클래스 이면서 Component 인스턴스를 갖고 있다.Component의 메소드를 호출 후 추가적인 동작을 수행한다.ConcreteDecoratorDecorator의 구현 클래스로, 추가적인 기능을 구.. [Design Pattern] 싱글톤 (Singleton) 패턴 1. 개요싱글톤 디자인 패턴 (Singleton Design Pattern)은 특정 클래스의 객체가 단 한 번만 생성되고, 그 객체에 대한 전역적인 접근 지점을 제공하는 디자인 패턴이다.2. 상황한 클래스의 인스턴스가 오직 하나만 필요한 경우그 인스턴스에 대한 전역적인 접근이 필요한 경우공유된 자원에 대한 중앙 집중적인 제어가 필요한 경우3. 다이어그램3.1. 설명Singleton 클래스의 생성자는 private 으로 외부에서 사용될 수 없다.private 의 정적 변수 instance 가 존재한다.public 의 정적 메소드 getInstance() 를 통해 instance 에 null 이 아닌 값이 존재하면 그것을 반환하고, 그렇지 않으면 객체를 새로 생성하여 instance 변수를 초기화한 후 그 .. [Design Pattern] 추상 팩토리 (Abstract Factory) 패턴 해당 포스팅은 [Design Pattern] 팩토리 (Factory) 패턴 의 하위 문서입니다. 1. 개요 추상 팩토리 디자인 패턴 (Abstract Factory Design Pattern) (이하 추상 팩토리) 은 관련된 여러 객체들의 생성(Creation)과 책임(Responsibility)을 공장(Factory) 의 하위 클래스에 위임(Delegate) 하여 하위 클래스에서 연관된 객체들을 생성하고 이들을 조합하여 사용할 수 있도록 하는 패턴이다. 추상 팩토리 여러 메소드로 이루어진 인터페이스를 제공하고 각 메소드는 서로 연관된 객체를 생성한다. 2. 상황 객체 생성이 복잡하거나 변경되기 쉬울 때 객체 생성 코드가 중복될 때 3. 다이어그램 3.1. 설명 Product1, Product2: 제품군.. [Design Pattern] 팩토리 메소드 (Factory Method) 패턴 해당 포스팅은 [Design Pattern] 팩토리 (Factory) 패턴 의 하위 문서입니다. 1. 개요 팩토리 메소드 디자인 패턴 (Factory Method Design Pattern) (이하 팩토리 메소드) 은 객체 생성(Creation)과 책임(Responsibility)을 공장(Factory) 의 하위 클래스에 위임(Delegate)하여 하위 클래스에서 어떤 클래스의 인스턴스를 생성할지 결정하도록 하는 패턴이다. 팩토리 메소드는 주로 단일 제품에 대한 생성을 다루고, 하위 클래스에서 해당 메소드를 구현함으로써 특정 클래스의 한다. 2. 상황 객체 생성이 복잡하거나 변경되기 쉬울 때 객체 생성 코드가 중복될 때 3. 다이어그램 3.1. 설명 Factory 가 추상 클래스로 존재한다. Produc.. [Design Pattern] 프로토타입 (Prototype) 패턴 1. 개요 프로토타입 디자인 패턴 (Prototype Design Pattern)은 기존 객체를 복제하여 새로운 객체를 생성하는 패턴이다. 2. 상황 객체 생성에 필요한 리소스나 시간이 많이 소요될 때 3. 다이어그램 3.1. 설명 Prototype 복제를 지원하는 인터페이스 또는 추상 클래스이다. 복제 메소드를 정의하고, 자기 자신을 복제하여 새로운 객체를 생성한다. ConcretePrototype Prototype 구현한 실제 객체이다. 자기 자신을 복제하여 새로운 객체를 생성하는 기능을 구현한다. 4. 구현 public interface Prototype { Prototype clone(); } public class ConcretePrototype implements Prototype { priv.. [Design Pattern] 옵저버 (Observer) 패턴 1. 개요옵저버 디자인 패턴(Observer Design Pattern)은 관찰자 observer 가 관찰대상 subject 이 상태변화가 있을 때마다 관찰자에게 알리고, 알림을 받은 관찰자가 행동하도록 하는 패턴이다.2. 상황한 개의 관찰 대상자 subject 가 여러개의 관찰자 observer 를 가질 때3. 다이어그램3.1. 설명SubjectObserver에 대한 등록, 해제, 알림 전송 등을 관리하는 역할을 수행한다.일반적으로 하나 이상의 Observer를 관리한다.상태가 변경될 때마다 등록된 모든 Observer에게 상태 변화를 알린다.ObserverSubject의 상태 변화에 대한 알림을 수신하고 처리하는 역할을 수행한다.Subject에서 발생한 알림을 받은 후 필요한 작업을 수행하거나 상태를.. [Design Pattern] 메멘토 (Memento) 패턴 1. 개요중재자 디자인 패턴 (Mediator Design Pattern)은 객체 간 복잡한 상호작용 부분을 따로 함축한 객체를 만드는 패턴이다.2. 조건여러 객체 간의 상호작용이 매우 복잡할 때3. 다이어그램3.1. 설명Mediator객체들 사이의 상호작용을 중재, 조정하는 인터페이스를 정의한다.다른 객체들과 통신하기 위한 인터페이스를 제공한다.객체들 간의 결합도를 낮추고, 객체들이 직접적으로 통신하지 않도록 한다.ConcreteMediatorMediator 인터페이스를 구현하여 객체들의 상호작용을 조정한다.객체들 간의 통신을 관리하고 중재한다.다른 객체들과의 통신을 위해 객체들 간의 관계를 알고 있어야 한다.ColleagueMediator와 통신하는 객체를 나타낸다.다른 동료 객체들과 직접적으로 통신.. 이전 1 2 다음