객체지향 14

Design Pattern 디자인 패턴 Command Pattern 커맨드 패턴

Command Pattern 커맨드 패턴 행동 패턴으로, 요청을 커맨드 객체로 감싸서, 요청 객체에게 전달합니다. 요청 객체는 요청(명령)을 처리할 적잘한 객체를 찾아 명령을 전달합니다. Command Pattern 커맨드 패턴이 적합한 경우 객체의 작업을 파라미터화 하고 싶을 때 객체의 작업을 queue로 관리하고 싶을때 (작업을 스케쥴링하고 싶을 때) 되돌릴 수 있는 작업을 구현하고 싶을 때 (Redo, Undo) 작업의 이력을 STACK 방식으로 기록해두고 사용할 수 있습니다. 작업을 되돌리고 싶을 때, 현재 상태에 지정된 되돌리는 작업 (reverseOperation)을 수행하면 됩니다. Memento Pattern 장단점 장점 작업 요청과 수행을 분리할 수 있습니다. (단일책임원칙) 기존 코드를..

JAVA/DesignPattern 2021.12.22

Design Pattern 디자인 패턴 Chain of Responsibility Pattern 책임체인패턴

Chain of Responsibility Pattern 책임체인패턴 행동패턴으로, 요청을 받아 수행할 객체들을 엮어내는 패턴입니다. 요청의 타입에 따라, 각 객체가 요청을 수행할 것인지, 다음 객체로 넘겨줄 것인지를 판단합니다. 책임체인 패턴이 적합한 경우 요청의 경우의 수에 따라 다른 종류의 작업이 진행되어야 하는 경우, 단 요청의 타입을 정의할 수 있고, 실행 순서를 미리 알 수 없는 경우 정의된 순서에 따라 몇개의 작업이 진행되어야만 하는 경우 런타임 시점에 작업의 순서나 작업 그룹을 정의해야 하는 경우 장단점 장점 요청의 처리 순서를 결정할 수 있습니다. 작업을 요청하는 클래스와 작업을 수행하는 클래스를 분리할 수 있습니다. (단일책임원칙) 기존의 요청 코드(client code)를 수정하지 않..

JAVA/DesignPattern 2021.12.21

Design Pattern 디자인 패턴 Decorator Pattern 데코레이터 패턴

Decorator Pattern 데코레이터 패턴 구조 패턴으로, 행동을 가진 객체를 둘러싸는 특별한 래퍼(Wrapper)를 통해 객체에 새로운 행동을 추가할 수 있도록 해주는 패턴입니다. 장단점 장점 서브클래스를 새로 만들지 않도고 새로운 메소드를 추가할 수 있습니다. 런타임에 객체에 대한 책임을 추가하고 삭제할 수 있습니다. 여러 개의 메소드를 합칠 수 있습니다. (단일책임원칙) 다양한 동작을 가진 단일 클래스를 여러개의 서브 클래스로 분리할 수 있습니다. 단점 Decorator가 중첩(스택 구조)되어 있는 경우, Decorator 하나를 삭제하기 어렵습니다. Decorator가 순서 없이 중첩되어 있는 경우, Decorator 하나를 추가하기 어렵습니다. 여러 층의 초기 구성 코드가 보기 좋지 않을 ..

JAVA/DesignPattern 2021.12.18

Design Pattern 디자인 패턴 Factory Pattern 팩토리 패턴

팩토리 Factory 란? 팩토리는 객체의 생성만을 전담하는 객체입니다. Interface를 구현한 클래스가 여러 개인 경우 외부에서 각 상황에 맞는 클래스를 찾아 인스턴스를 생성해주어야 하는 불편함을 해결해주는 패턴입니다. 즉 Factory에서 각 상황에 맞는 클래스를 찾아서 객체를 생성해주도록 합니다. 팩토리 Factory 패턴 사용 클래스가 만들어야 하는 개체 유형(타입)을 미리 알 수 없는 경우 클래스를 특정하기 위한 서브 클래스가 필요한 경우 복합한 클래스 구조를 단순화하기 위한 경우 팩토리 패턴 구현 예시 아래와 같이 애완동물을 생성하는 기능을 담당하는 객체를 Factory라고 합니다. 애완동물을 생성하려고 한다면 아래와 같이 new를 이용해서 생성해주어야 합니다. 애완동물 꾼이 = new 애..

JAVA/DesignPattern 2021.12.07