커맨드 패턴 예제

(Last Updated On: August 1, 2019)

다음은 컨텍스트 메뉴와 같은 GUI 구성 요소를 개발하고 있으며 최종 사용자가 항목을 클릭할 때 작업을 트리거하는 메뉴 항목을 구성할 수 있도록 하려는 예입니다. 오늘날의 패턴은 명령으로, 특정 작업의 요청자가 작업을 수행하는 개체에서 분리될 수 있습니다. 책임 체인 패턴이 체인을 따라 요청을 전달한 경우 명령 패턴은 요청을 특정 모듈로 전달합니다. 명령 패턴은 요청 자체를 개체로 변환합니다. 이 개체는 다른 개체처럼 저장하고 전달할 수 있습니다. 이 패턴의 핵심은 작업을 실행하기 위한 인터페이스를 선언하는 명령 인터페이스입니다. 가장 간단한 형태로 이 인터페이스에는 추상 실행 작업이 포함됩니다. 각 콘크리트 명령 클래스는 수신기를 인스턴스 변수로 저장하여 수신기 액션 쌍을 지정합니다. 요청을 호출하는 execute() 메서드의 다른 구현을 제공합니다. 수신기는 요청을 수행하는 데 필요한 지식을 가지고 있습니다.

개체 지향 프로그래밍에서 명령 패턴은 개체가 작업을 수행하거나 나중에 이벤트를 트리거하는 데 필요한 모든 정보를 캡슐화하는 데 사용되는 동작 디자인 패턴입니다. 이 정보에는 메서드 이름, 메서드를 소유하는 개체 및 메서드 매개 변수에 대한 값이 포함됩니다. 콘크리트 명령은 다양한 종류의 요청을 구현합니다. 구체적인 명령은 자체적으로 작업을 수행하도록 되어 있지 않고 비즈니스 논리 개체 중 하나에 호출을 전달합니다. 그러나 코드를 단순화하기 위해 이러한 클래스를 병합할 수 있습니다. 개발자는 각 명령에 대 한 대/소문자와 함께 switch 문을 사용할 수 있습니다. 코딩 중에 Switch 문을 사용하면 개체 지향 프로젝트의 디자인 단계에서 잘못된 디자인의 표시입니다. 명령은 트랜잭션을 지원하는 개체 지향 방법을 나타내며 이 디자인 문제를 해결하는 데 사용할 수 있습니다. 명령 개체의 시퀀스는 복합(또는 매크로) 명령으로 어셈블할 수 있습니다. 구체적인 명령인 LightOnCommand는 명령 인터페이스의 실행 작업을 구현합니다. 적절한 Receiver 개체의 작업을 호출할 수 있는 지식이 있습니다.

이 경우 어댑터 역할을 합니다. 어댑터라는 용어로, 나는 콘크리트 명령 객체가 다른 인터페이스와 호출자와 수신기를 연결하는 간단한 커넥터것을 의미한다. 이 모델을 사용하면 소비자로부터 명령을 생성하는 개체를 분리할 수 있으므로 패턴이 일반적으로 생산자-소비자 패턴으로 알려져 있습니다.

Rick

After many years of being a full time freelance writer, and a long time resident of this state, I've decided to turn my full attention toward California by exploring all that it has to offer. My goal is to inspire you to get out there and explore this amazing state. Please follow my adventures and news content by visiting Calexplornia daily or clicking on one of my Social Media accounts below.