내 응용 프로그램에서 C++에서 나는 MVC 패턴을 사용하고 있습니다. 나는 많은 모델 객체들과 그 객체들로부터 취할 수있는 액션 목록을 가지고있다. 그렇지 않은 경우 objectB가 표시됩니다 또는 objectC이 표시되는 경우MVC 컨트롤러 사용 안 함 제어
- 내가 objectA 표시 할 수 없습니다,
- 및 objectA에 어떤 작업을 수행 할 수 없습니다하지만 행동은 몇 가지 조건이 충족되는 경우에만 수행 할 수 있습니다 표시
- 다른 더 복잡한 조건
그래서 특정 클래스의 객체가 순간에 유효한 조치가 있는지 확인합니다 클래스가하는 생각을했다 :
AActionValidator
{
bool CanDoX();
bool CanDoY();
};
BActionValidator
{
bool CanDoZ();
};
을
Controllers 클래스는, 특정의 조작이 사용 가능한 경우에이 ActionValidator에 요구합니다. 그렇다면, 조작을 실시합니다.
우려 사항 1 : 하지만 일부 동작을 사용할 수 없거나 사용할 수 없을 때 자동으로 ui 컨트롤을 사용/사용하지 않도록 설정하는 방법은 무엇입니까? 이러한 ActionValidators 클래스도 이러한 일이 발생할 때 어떤 이벤트를 방출해야한다고 생각하십니까? 하지만 내 Ui 컨트롤은 다른 ActionValidator 클래스의 이벤트에 연결해야합니다.
우려 사항 2 : 이벤트를 내보내는 하나의 전역 ApplicationActionManager 클래스가 있고 응용 프로그램 전체의 모든 개체에 대한 유효한 동작에 대한 정보를 저장하는 것이 더 좋을까요? 하지만 결국 하나의 커다란 비 일관적인 클래스가 될까 봐 걱정됩니다.
우려 3 : ObjectA가 표시된 경우 컨트롤러는 표시 버튼을 사용하지 않도록 설정하고 숨기기 버튼을 활성화 할 수도 있습니다. 컨트롤 상태를 업데이트하는 컨트롤러의 작업입니까? 아니면 쇼/숨겨진 상태를 이벤트로 방출해야합니까?
이것이 어떻게 수행되는지에 대한 통찰력. 감사합니다.