command pattern 예제

명령 패턴 구현을 설명하는 데 사용되는 용어는 일관성이 없으므로 혼동될 수 있습니다. 이는 모호성, 동의어 의 사용 및 원래 패턴을 넘어서 원래 패턴을 모호하게 할 수 있는 구현의 결과입니다. 이 패턴은 결국 디자인이 복잡해 보이게 하는 많은 명령 클래스를 강제로 적용하게 됩니다 . 사용할 명령과 중앙 컨트롤러에 대한 가능한 유지 관리 문제로 이어지는 경우 필요한 인텔리전스입니다. 책임의 체인, 명령, 중재자 및 관찰자는 발신자와 요청 수신자를 연결하는 다양한 방법을 다룹니다: 지금까지 우리는 명령 패턴을 구현하기 위해 객체 지향 접근 방식을 사용했습니다. 프로토타입은 명령 의 복사본을 기록에 저장해야 할 때 도움이 될 수 있습니다. Java에서는 이름이 포함된 문자열이 지정된 클래스의 정의를 조회할 수 있습니다. TransactionCommand 클래스의 실행 () 작업에서 클래스 이름을 계산하고 동적으로 실행 중인 시스템에 연결합니다. 나는 동적으로로드 할 수 있도록, 트랜잭션 명령 하위 클래스의 이름으로 문자열 “명령”에 의해 연결 된 명명 규칙, 명령 이름을 사용합니다. 편집기의 상태(예: 절단 및 붙여넣기)를 변경하는 명령은 명령과 관련된 작업을 실행하기 전에 편집기 상태의 백업 복사본을 만듭니다. 명령이 실행되면 명령 기록(명령 개체 스택)에 배치되고 해당 시점에서 편집기 상태의 백업 복사본이 표시됩니다. 나중에 사용자가 작업을 되돌려야 하는 경우 앱은 기록에서 가장 최근 명령을 받고 편집기 상태의 관련 백업을 읽고 복원할 수 있습니다.

개체 지향 프로그래밍에서 명령 패턴은 개체가 작업을 수행하거나 나중에 이벤트를 트리거하는 데 필요한 모든 정보를 캡슐화하는 데 사용되는 동작 디자인 패턴입니다. 이 정보에는 메서드 이름, 메서드를 소유하는 개체 및 메서드 매개 변수에 대한 값이 포함됩니다. 명령 명령 = _명령[--_현재]을 명령으로; 그리고 여기에 가장 추한 부분입니다. 텍스트 복사/붙여넣기와 같은 일부 작업은 여러 위치에서 호출해야 합니다. 예를 들어 사용자가 도구 모음에서 작은 “복사” 단추를 클릭하거나 컨텍스트 메뉴를 통해 무언가를 복사하거나 키보드에서 Ctrl+C를 누르기만 하면 됩니다. Command 인터페이스는 일반적으로 명령을 실행하기 위한 단일 메서드만 선언합니다. 개발자는 각 명령에 대 한 대/소문자와 함께 switch 문을 사용할 수 있습니다. 코딩 중에 Switch 문을 사용하면 개체 지향 프로젝트의 디자인 단계에서 잘못된 디자인의 표시입니다. 명령은 트랜잭션을 지원하는 개체 지향 방법을 나타내며 이 디자인 문제를 해결하는 데 사용할 수 있습니다. CommandArgument는 명령의 인수를 저장하는 도우미 클래스입니다.

모든 형식의 크고 가변적인 인수를 전달하는 작업을 단순화하기 위해 다시 작성할 수 있습니다. 이 경우 클래스는 명령 개체도 List에 저장합니다. 물론 작업의 실행 프로세스에 몇 가지 추가 제어를 추가해야 하는 경우가 아니면 패턴 구현에서 필수는 아닙니다. newInstance()에서 반환된 클래스 개체는 적절한 유형으로 캐스팅되어야 합니다. 즉, 새 클래스는 인터페이스를 구현하거나 컴파일 타임에 프로그램에 알려진 기존 클래스를 하위 클래스로 분류해야 합니다. 이 경우 Command 인터페이스를 구현하기 때문에 문제가 되지 않습니다.