2023/02 3

[행동 패턴] 커맨드 패턴(Command Pattern, 명령 패턴)

Command Pattern(커맨드 패턴, 명령 패턴) 요청을 요청에 대한 모든 정보가 포함된 독립 실행형 객체로 변환하는 행동 디자인 패턴이다. 명령이 객체화되어 있다. Command 클래스 안에는 출력할 수 있는 메서드가 포함돼있다. execute() 하면 해당하는 Command의 멤버 변수의 string 값을 출력하도록 한다. 다양한 요청들이 있는 메서드들을 인수화할 수 있도록하면 요청의 실행을 지연 또는 대기열에 넣을 수 있도록 하고 또 실행 취소할 수 있도록 작업을 지원할 수 있도록 한다. 예제 (1) Command public interface Command extends Comparable{ void execute(); } 명령을 Queue에 넣고 실행한다. public static void..

[행동 패턴] 템플릿 메서드(Template Method)

템플릿 메서드(Template Method) Def) 알고리즘의 구조를 메소드에 정의하고 하위 클래스에서 알고리즘 구조의 변경없이 알고리즘을 재정의하는 패턴 부모 클래스에서 알고리즘의 골격을 정의하지만 해당 알고리즘의 구조를 변경하지 않고 자식 클래스들이 알고리즘의 특정 단계를 오버라이드할 수 있도록 하는 행동 디자인 패턴을 말한다. 사용하는 경우 구현하려는 알고리즘이 일정한 프로세스가 있다. 여러 단계가 있다. 구현하려는 알고리즘이 변경 가능성이 있다. 템플릿 메서드 사용 방법 알고리즘을 여러 단계로 나눈다. 나눠진 알고리즘의 단계를 메소드로 선언한다. 알고리즘을 수행한 템플릿 메소드를 만든다. 하위 클래스에서 나눠진 메소드들을 오버라이드한다. 기본 설계 추상 클래스에 step1, 2, 3 을 나눠서 ..

[행동 패턴] 전략 패턴(Strategy Pattern)

인터페이스(Interface) 키보드나 디스플레이 따위처럼 사람과 컴퓨터를 연결하는 장치 기능에 대한 선언과 기능과 구현을 분리한다. 기능을 사용하는 통로 어떤 기능에 접근하는 접근점을 제공한다. 델리게이트(Delegate) 위임하다. 떠넘긴다는 뜻 두 객체간의 관계에서 어떤 객체가 기능을 수행할 때, 복잡한 기능을 개발하는 책임을 다른 객체로 떠넘긴다. 전략 패턴(스트레지티 패턴, Strategy Pattern) Def) 여러 알고리즘을 하나의 추상적인 접근점(인터페이스)을 만들어서 접근 점에서 서로 교환 가능하도록 하는 패턴을 말한다. 의도: 알고리즘들의 패밀리를 정의하고 각 패밀리를 별도의 클래스에 넣은 다음 그들의 객체들을 상호교환하도록 하는 행동 디자인 패턴을 말한다. 해결책: 특정 작업을 다양..