본문 바로가기

728x90

분류 전체보기

(42)
[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] 팩토리 (Factory) 패턴 1. 개요 팩토리 디자인 패턴 (Factory Design Pattern)은 객체의 생성 부분을 공장(Factory) 객체에 위임(Delegate)하는 패턴이다. 2. 종류 해당 패턴은 다음 세 가지 종류의 디자인 패턴을 갖는다. 2.1. 단순 팩토리 패턴 (Simple Factory Pattern) [Design Pattern] 단순 팩토리 (Simple Factory) 패턴 2.2. 팩토리 메소드 패턴 (Factory Method Pattern) [Design Pattern] 팩토리 메소드 (Factory Method) 패턴 2.3. 추상 메소드 패턴 (Abstract Method Pattern) [Design Pattern] 추상 팩토리 (Abstract Factory) 패턴 관련 포스팅 [Desi..
[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. 개요 메멘토 디자인 패턴 (Memento Design Pattern)은 객체의 상태를 기억해 두고 후에 객체를 불러올 수 있도록 하는 패턴이다. 2. 상황 상태를 되돌리고자 할 때 게임에서 체크포인트를 구현해야 할 때 복잡한 작업을 취소 및 재실행해야 할 때 3. 다이어그램 3.1. 설명 Originator 상태를 저장하고 복원할 객체이다. 이 객체는 현재 상태를 나타내는 정보를 가지고 있다. Memento Originator 객체의 상태를 저장하는 객체이다. Originator의 내부 상태를 나타내는 정보를 가지고 있다. Caretaker Memento 객체를 관리하고 저장한다. Originator의 상태를 복원하기 위해 필요한 Memento 객체를 보관한다. 4. 구현 public class O..
[Baekjoon] 2839번 설탕 배달 B1 <Short> 2839번 - 설탕 배달 1. 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. Input 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) Output 상근이가 배달하..

728x90