문제

일식 RCP의 맥락에서 행동과 명령의 차이점은 무엇입니까? 나는 그들이 둘 다 메뉴 항목에 기여한다는 것을 알고 있지만 어느 것이 더 낫습니까? 그리고 왜?

내가 읽은 모든 온라인 리소스 중에서, 나는 둘 사이의 차이점에 대한 확고한 이해를 얻을 수 없었습니다. 나는 실제로 그것들을 사용하려고 시도하지 않았지만 더 높은 수준의 관점에서 시작하도록 이해하고 싶었습니다.

감사

도움이 되었습니까?

해결책

일식 위키를 읽었습니까? FAQ 명령과 행동의 차이점은 무엇입니까?

당신은 이미 행동과 명령이 기본적으로 같은 일을한다는 것을 이미 이해하고있을 것입니다. 특정 코드가 실행됩니다. 그들은 주로 사용자 인터페이스 내의 Artificats에서 트리거됩니다.

주요 관심사 행위 그게 징후와 코드는 모두 조치에 저장됩니다..
행동 대의원에 약간의 분리가 있지만 여전히 기본 행동과 연결되어 있습니다. 선택 이벤트는 현재 선택에 따라 활성화 상태 (프로그래밍 방식)를 변경할 수 있도록 조치로 전달됩니다. 이것은 그다지 우아하지 않습니다. 또한 특정 워크 벤치 부분에 작업을 배치하려면 여러 확장 지점을 사용해야합니다.

명령 이 모든 문제를 거의 해결합니다. 기본 아이디어는 그 것입니다 명령은 실행될 일부 코드의 추상 아이디어 일뿐입니다. 코드의 실제 처리는 핸들러에 의해 수행됩니다.. 핸들러는 워크 벤치의 특정 상태로 활성화됩니다. 이 상태는 플랫폼 코어 표현식에 의해 쿼리됩니다. 즉, 현재 활성화 된 핸들러에 따라 다르게 작동하는 하나의 글로벌 저장 명령 만 필요합니다.

properties of a command

이것 기사 차이점을 자세히 설명합니다

행위:

  • 그만큼 UI와 취급은 항상 묶여 있습니다. 서로 분리 할 수있는 방법은 없습니다
  • 작업 벤치 (팝업 메뉴/도구 막대)의 다른 부분에 동작이 기여할 수 있지만 모두 다른 확장 지점 그래서 당신은 여러 곳에서 XML을 복제하게됩니다. 최악의 상황은 모든 확장 지점이 동일한 구성을 기대하지는 않는다는 것입니다.
  • 여러 곳에서 동작을 지정하는 것은 a입니다 유지 보수 악몽. 동작의 아이콘을 변경 해야하는 경우 모든 장소에서 변경해야합니다.
  • Plugin.xml의 복제 작업과 관련된 또 다른 문제는 메모리에서 동일한 동작의 여러 인스턴스가 생성됩니다..

명령에는 더 많은 확장 지점이 포함되지만 :

  • 핸들러는 명령과 별도로 선언 할 수 있습니다. 이것은 가능합니다 동일한 명령에 대한 다중 핸들러 선언.
  • 그만큼 활동 시간 모든 핸들러가 평가되고 가장 구체적인 조건에 대해 True를 반환하는 핸들러가 선택됩니다. 이 모든 것들이 있습니다 메모리에 핸들러를로드하지 않고 완료되었습니다. 플러그인을로드하지 않아도!
  • 매개 변수를 정의하는 것은 디스플레이 이름 및 ID의 맵을 반환하는 것입니다. 이름은 키 바인딩 페이지에 표시되며 ID는 키 시퀀스를 누르면 명령을 호출하는 데 사용됩니다.
  • 명령 실행의 관찰자 일뿐 아니라 이벤트에 대한 거부권을 행사할 수없는 iExecutionListener를 정의하십시오.

다른 팁

Vonc의 훌륭한 답변에 추가하면 응용 프로그램이 상대적으로 작 으면 명령이 약간 과잉 일 수 있습니다. 그들은 설정하기가 상대적으로 더 어렵고 여러 관점, 편집자 및보기가있을 때 가장 많이 빛납니다.

간단한 것을 위해서는 행동과 함께 갈 것입니다.

그리고 이후 버전의 일식에서 행동이 감가 상각 될 수 있음을 기억하십시오. 처음부터 명령을 사용하는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top