Develop (21) 썸네일형 리스트형 [Design Pattern] 단순 팩토리 (Simple Factory) 패턴 해당 포스팅은 [Design Pattern] 팩토리 (Factory) 패턴 의 하위 문서입니다. 1. 개요 단순 팩토리 디자인 패턴 (Simple Factory Design Pattern) (이하 단순 팩토리) 은 객체의 생성 부분을 공장(Factory) 클래스에 위임(Delegate)하는 패턴이다. 단순 팩토리는 팩토리 디자인 패턴의 가장 단순한 형태로, 팩토리 디자인 패턴 그 자체의 의미를 갖는다. 2. 상황 객체 생성이 복잡하거나 변경되기 쉬울 때 객체 생성 코드가 중복될 때 3. 다이어그램 3.1. 설명 Product 객체를 생성하는 코드는 Factory 클래스의 create() 에 구현되어 있다. 이때, 반드시 생성할 객체를 구분할 수 있는 색인(int), 열거형(Enum), 문자열(String.. [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와 통신하는 객체를 나타낸다.다른 동료 객체들과 직접적으로 통신.. [Design Pattern] 명령 (Command) 패턴 1. 개요 명령 디자인 패턴 (Command Design Pattern)은 명령(Command)을 객체로 만들고 실행 작업을 명령한 객체(Invoke)와 실제 작업을 수행하는 객체(Receiver) 사이의 의존성을 제거하고, 명령의 매개 변수를 조작하거나 취소, 재실행하는 등의 기능을 하는 패턴이다. 2. 상황 실행되는 작업을 객체로 캡슐화하고자 할 때 작업을 취소하거나 다시 실행해야 할 때 작업의 실행 순서를 관리해야 할 때 다양한 작업을 동적으로 구성해야 할 때 실행되는 작업과 호출하는 객체 간의 의존성을 줄여야 할 때 3. 다이어그램 3.1. 설명 Command 명령 추상 클래스이다. Receiver 필드를 가진다. execute() 추상 메소드를 정의한다. ConcreteCommand Comman.. [Flutter] Duration 값 간결히 나타내기 1. 개요 Flutter 에서 기간 혹은 시간을 나타내기 위해서는 Duration 을 사용한다. 사용 예시는 다음과 같다. 1밀리초: Duration(milliseconds: 1) 50분: Duration(minutes: 50) 1년: Duration(days: 365) 1.1. 개선 필요성 위와 같은 쓰임은 개발하는데 상당히 불편했다. Future.delayed() 나, Timer.periodic() 함수 등과 같이 쓰이기라도 한다면, 코드길이가 너무 길어지고 가독성이 많이 떨어졌다. 또한 const 를 붙이라는 IDE 의 말을 따른다면 다음과 같은 코드가 완성된다. await Future.delayed(const Duration(milliseconds: 500), () { // ... }); Time.. [Design Pattern] 경량 (Flyweight) 패턴 1. 개요경량 디자인 패턴 (Flyweight Design Pattern)은 내부 상태(Intrinsic)와 외부 상태(Extrinsic)를 구분하는 패턴이다.1.1. 설명내부 상태(Intrinsic): 객체가 독립적으로 가지고 있는 고유한 상태 - Flyweight외부 상태(Extrinsic): 여러 객체가 공유하는 상태2. 상황많은 수의 유사한 객체를 생성해야 할 때내부 상태와 외부 상태를 명확히 구분해야 할 때3. 다이어그램3.1. 설명FlyweightConcreteFlyweight 의 인터페이스 ConcreteFlyweight공유될 객체의 내부 상태를 저장하고, 외부 상태를 공유한다.operation(String context) 메소드를 구현하여 외부 상태에 따른 동작을 수행한다. Flyweigh.. [Design Pattern] 중재자 (Mediator) 패턴 1. 개요 중재자 디자인 패턴 (Mediator Design Pattern)은 객체 간 복잡한 상호작용 부분을 따로 함축한 객체를 만드는 패턴이다. 2. 조건 여러 객체 간의 상호작용이 매우 복잡할 때 3. 다이어그램 3.1. 설명 Mediator 객체들 사이의 상호작용을 중재, 조정하는 인터페이스를 정의한다. 다른 객체들과 통신하기 위한 인터페이스를 제공한다. 객체들 간의 결합도를 낮추고, 객체들이 직접적으로 통신하지 않도록 한다. ConcreteMediator Mediator 인터페이스를 구현하여 객체들의 상호작용을 조정한다. 객체들 간의 통신을 관리하고 중재한다. 다른 객체들과의 통신을 위해 객체들 간의 관계를 알고 있어야 한다. Colleague Mediator와 통신하는 객체를 나타낸다. 다른 .. 이전 1 2 3 다음 목록 더보기