design-patterns - 向导用户界面的设计模式

标签 design-patterns user-interface wizard

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

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

interface CancelButton 
{
   void onCancelClick();
}

interface NextButton 
{
   void onNextClick();
}

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

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

谢谢。

最佳答案

似乎您只需要一个简单的类层次结构。你会有一些基础摘要 WizardPage每个基本向导页面案例的类和子类,例如 WizardWelcomePage , WizardLastPage , WizardIntermediatePage .然后将向导定义为向导页面的集合,并且每个页面都知道它应该显示哪些按钮。不是特定的设计模式,简单的 OOP。

这个想法的另一个变体,使事情更灵活是使基础 WizardPage接受 WizardButton 的集合其构造函数中的实例(和 WizardCancelButtonWizardAcceptButtonWizardNextButton 将是子类)。这将允许您为向导页面和向导按钮拥有单独的层次结构(变体)。我认为这可以被认为是一种桥模式。每个按钮子类都将在其构造函数中请求另一个接口(interface),以便在单击它们时可以将此信息发送到WizardEngine。这将采取适当的行动:移动到下一页,取消或接受。您可能还需要来自每个 WizardPage 的另一条事件链。指示内容何时有效或无效,以便可以通过 WizardEngine 启用\禁用相应的按钮.

关于design-patterns - 向导用户界面的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12098057/

相关文章:

c++ - 在 C++ 中存储 JSON 对象的设计模式是什么?

c# - 存储过程或通过 IQueryable 计算?

c# - 我应该在创建任何实例之前调用 static init()

android - 带权重的 LinearLayout 中的居中图像

java - 发现循环依赖问题

ios - Swift - 拍照或选择现有的

c - Gtk+2.0,如何删除附加到 GtkTable 的小部件?

Eclipse SWT - WizardPage 小部件验证

java - 在 Android 上创 build 置向导

Eclipse 插件 : add controls to WizardNewProjectCreationPage