2013-07-21 1 views
0

Windows 7의 WPF에서 다이어그램 편집기를 구성 중입니다. 중요한 디자인 기술 (TDD, Prism, MVVM, 종속성 주입)을 배우기 직전인데도 불구하고 몇 가지 확립 된 디자인 패턴을 알고 있습니다. 내 질문 :명령에 매개 변수 수가 가변적 인 경우 명령 패턴을 디자인하고 구현하는 방법은 무엇입니까?

전체적으로 명령은 다른 숫자와 매개 변수 유형 조합을 갖습니다. 새 노드에 대한 매개 변수 = 위치 (:

명령이 새 노드를 만듭니다 은 마우스로 수행 할 수 있습니다 모두 예를 들어 다음, (명확하게하기 위해, 명령은 고정 된 매개 변수 집합이 있습니다) 포인트) 새로운 위치로

명령 이동 노드 : 매개 변수 = 노드 (graphNode), 새로운 위치 (포인트)

명령은 두 개의 노드를 연결하는 에지합니다) 노드 (graphNode에서 매개 변수 =을, 노드 (graphNode) , 에지 유형 (GraphEdgeType)

이러한 명령을 가장 잘 캡슐화하려면 공장 또는 추상 팩토리 패턴을 어떻게 적용해야합니까?

클라이언트가 이러한 매개 변수를 명령 집행관에게 전달하는 기본 방법은 무엇입니까?

은 (내가 여기 사냥하고 다른 곳에서가 아니라 내가 찾을 수 없습니다 뭔가로 리디렉션 할 수 있도록 명시 적으로 프레임 질문 또는 답변이 발견, 준비 :-)

[편집] 내가 충분히 명시되지 않은 : 나는 그것이 파라미터 세트 객체를 (열거 말) CommandType을 전달해야하는 CommandFactory이 명령을 반환 할 수 있도록 ... 또는 그것은 단지의 CommandType을 통과 할 필요가있는 경우

이후에 클라이언트 있도록 매개 변수를 사용하여 명령의 소수 자릿수를 지정합니까?

답변

0

이러한 명령을 가장 잘 캡슐화하려면 공장 또는 추상 팩토리 패턴을 적용해야합니까?

그게 무슨 소리 죠? 매개 변수로 모든 "매개 변수"에 대한 속성을 가진 클래스를 전달하십시오.

(당신이 state machine이 필요한 것처럼 오히려이 들린다.)

+0

수신자가 전달 된 각 값의 유형을 명시 적으로 확인하지 않고 주어진 명령 유형에 대해 매개 변수 세트를 효율적으로 검증 할 수있는 방법으로이를 수행하는 방법을 알 수 없습니다. [그냥 저에게 ...] 각 명령에 고유 한 매개 변수 클래스를 정의합니까?하지만 개별 값을 가져 오기 위해 인터페이스에 연결되어 있습니까? – user167471

+0

상태 머신에서 브러쉬를해야합니다 :-) – user167471

관련 문제