Design patterns 向导用户界面的设计模式
所以需求是为多步骤向导/单步向导创建一个通用接口。由于每个向导可能没有所有按钮(单步向导只有“取消”和“提交”,多步第一个屏幕有“取消”、“下一步”等) 我应该为每个按钮创建单独的界面吗Design patterns 向导用户界面的设计模式,design-patterns,user-interface,wizard,Design Patterns,User Interface,Wizard,所以需求是为多步骤向导/单步向导创建一个通用接口。由于每个向导可能没有所有按钮(单步向导只有“取消”和“提交”,多步第一个屏幕有“取消”、“下一步”等) 我应该为每个按钮创建单独的界面吗 interface CancelButton { void onCancelClick(); } interface NextButton { void onNextClick(); } 等等?每个向导只实现它们所需要的吗 这个用例有更好的设计模式吗 谢谢。看起来您只需要一个简单的类层次结构
interface CancelButton
{
void onCancelClick();
}
interface NextButton
{
void onNextClick();
}
等等?每个向导只实现它们所需要的吗
这个用例有更好的设计模式吗
谢谢。看起来您只需要一个简单的类层次结构。对于每个基本的向导页面案例,您都会有一些基本的抽象
WizardPage
类和子类,比如WizardWelcomePage
,WizardLastPage
,WizardIntermediatePage
。然后,向导被定义为向导页面的集合,每个页面都知道应该显示哪些按钮。不是一个特殊的设计模式,简单的OOP
这个想法的另一个变体,使事情更加灵活,就是使基本的
WizardPage
在其构造函数中接受WizardButton
实例的集合(而WizardCancelButton
,WizardAcceptButton
,WizardNextButton
将是子类)。这将允许您对向导页面和向导按钮具有单独的层次结构(变体)。我认为这可以看作是一种桥梁模式。每个按钮子类都会在其构造函数中请求另一个接口,以便在单击它们时可以将此信息发送到向导引擎
,该引擎将执行相应的操作:移动到下一页、取消或接受。您可能还需要从每个向导页面
发出另一个事件链,以指示内容何时变为有效或无效,这样向导引擎
就可以启用/禁用相应的按钮。您可以使用一个按钮界面来显示onClick方法。NextButton、Cancel Button和SubmitButton实现onClick方法来定义特定于按钮的行为。您可以有一个向导类,该向导类有一个列表和一个要添加到此列表的方法。向导应该有一个名为onClick的方法,该方法通过单击的按钮传递。此方法检查单击的按钮是否存在于列表中,并委托给已单击按钮的onClick方法。