본문 바로가기

Design Pattern18

[Design Pattern] 메멘토 패턴(Memento Pattern)에 대해 알아보자 Definition 메멘토 패턴(Mediator Pattern)은 객체를 이전 상태로 되돌릴 수 있는 기능을 제공하는 디자인 패턴이다. Behavioral Patterns Situation - 객체를 이전의 상태로 복구해야 할 때 (사용자가 '작업 취소'를 요청) - 시스템에서 핵심적인 기능을 담당하는 객체의 상태 저장 - 핵심적인 객체의 캡슐화 유지 Structure Pros - 저장된 상태를 핵심 객체와는 다른 별도의 객체에 보관할 수 있어 안전하다. - 핵심 객체의 데이터를 계속해서 캡슐화된 상태로 유지할 수 있다. - 복구 기능을 구현하기가 쉽다. Cons - 상태를 저장하고 복구하는 데 시간이 오래 걸릴 수 있다. 비슷한 패턴 - "undo"를 구현할 때 Command와 Memento를 함께 사.. 2022. 8. 2.
[Design Pattern] 중재자 패턴(Mediator Pattern)에 대해 알아보자 Definition 중재자 패턴(Mediator Pattern)은 모든 클래스간의 복잡한 로직을 캡슐화하여 하나의 클래스에 위임하여 처리하는 패턴이다. Behavioral Patterns Situation - GUI 어플리케이션에 효과적(라디오 버튼, 텍스트 필드, 버튼은 각각 다른 클래스로 되어 있음 -> 다수의 객체를 조정해야 하는 경우) - 서로 관련된 객체 사이의 복잡한 통신과 제어를 한곳으로 집중하고 싶을 때 - M개의 객체 사이에 N개의 관계가 형성되어 있어 아주 복잡하게 얽혀 있을 때 이를 M:1 관계로 바꿔주기 위해 Structure Pros - 시스템과 객체를 분리함으로써 재사용성을 획기적으로 향상시킬 수 있다. - 제어 로직을 한 군데 모아놨으므로 관리하기가 수월하다. - 시스템에 들어.. 2022. 8. 2.
[Design Pattern] 책임 연쇄 패턴(Chain of Reponsibility Pattern)에 대해 알아보자 Definition 책임 연쇄(Chain of Responsibility)는 일련의 핸들러를 따라 요청을 전달할수 있는 패턴이다. 요청을 받으면 각 핸들러는 요청을 처리할지 아니면 체인의 다음 핸들러로 전달할지 결정한다. Behavioral Patterns Situation - 1개의 요청을 2개 이상의 객체에서 처리해야 할때 - 윈도우 시스템에서 마우스 클릭과 키보드 이벤트를 처리할 때 흔히 쓰인다. - 프로그램이 다양한 방식으로 다양한 종류의 요청을 처리할 것으로 예상되지만 정확한 요청 유형과 순서를 미리 알 수 없는 경우 - 특정 순서로 여러 핸들러를 실행해야 하는 경우 Structure Pros - 요청을 보낸 쪽과 받는 쪽을 분리할 수 있다. - 객체는 사슬의 구조를 몰라도 되고 그 사슬에 들어.. 2022. 7. 29.
[Design Pattern] 빌더 패턴(Builder Pattern)에 대해 알아보자 Definition 빌더(Builder)는 복잡한 객체를 단계별로 구성할 수 있는 패턴이다. 동일한 구성 코드를 사용하여 객체의 다양한 유형과 표현을 생성할 수 있다. Creational Patterns Situation 복합 객체 구조를 구축하는 용도로 많이 쓰임 제품을 여러 단계로 나눠서 만들도록 제품 생산 단계를 캡슐화 하고 싶을 때 Structure Pros 복합 객체 생성 과정을 캡슐화 한다. 여러 단계와 다양한 절차를 거쳐 객체를 만들 수 있다 (팩토리 패턴은 한 단계에서 모든 걸 처리) 제품의 내부 구조를 클라이언트로부터 보호할 수 있다. 클라이언트는 추상 인터페이스만 볼 수 있기에 제품을 구현한 코드를 쉽게 바꿀 수 있다. Cons 팩토리를 사용할 때 보다 객체를 만들 때 클라이언트에 관해.. 2022. 7. 28.
300x250