向导用户界面的设计模式

时间:2012-08-23 18:39:51

标签: design-patterns user-interface wizard

因此,需要为多步向导/单步向导创建通用接口。由于每个向导可能没有所有按钮(单步向导只有取消和提交,因此多步骤第一个屏幕有取消,下一个等等)。

我应该为每个按钮创建一个单独的界面

interface CancelButton 
{
   void onCancelClick();
}

interface NextButton 
{
   void onNextClick();
}

等等?每个向导只实现他们需要的那些?

这个用例有更好的设计模式吗?

感谢。

1 个答案:

答案 0 :(得分:1)

看起来你只需要一个简单的类层次结构。对于每个必要的向导页面案例,您都有一些基本的抽象WizardPage类和子类,如WizardWelcomePageWizardLastPageWizardIntermediatePage。然后,向导被定义为向导页面的集合,每个页面都知道它应该显示哪些按钮。不是特定的设计模式,简单的OOP。

这个想法的另一个变体,即使事情更灵活,就是让基础WizardPage在其构造函数中接受WizardButton个实例的集合(WizardCancelButton,{{1 },WizardAcceptButton将是子类)。这将允许您为向导页面和向导按钮具有单独的层次结构(变体)。我认为这可以被视为桥模式。每个按钮子类都会在其构造函数中请求另一个接口,以便在单击它们时,它们可以将此信息发送到WizardNextButton,这将执行相应的操作:移动到下一页,取消或接受。您可能还需要从每个WizardEngine开始的另一系列事件来指示内容何时生效或无效,以便WizardPage启用\禁用相应的按钮。