假设我有一个带丝带菜单的酒杯。在这条丝带中有一些按钮,如“新”、“保存”、“删除”等等.应用程序可以在其中打开表单--有典型的数据管理控件,因此我们可以创建新的book/视频/膝上型计算机,保存图书/视频/膝上型计算机.您如何保持同步按钮(UI),最重要的是,您将使用哪种模式来使用单个按钮来管理所有新的/保存/删除表单(阅读书籍/视频/膝上型计算机)?
发布于 2016-03-12 00:02:44
我会用责任链模式。表单必须实现接口(假设,IChain),以便接受带状菜单对象(不管是什么代理对象--功能区可能最近会检查它并创建必要的菜单项)。在表单创建(即事件或观察者模式)上,带状将其菜单-代理发送到IChain。IChain实现决定如何填充它。
链的好处-它允许许多接收者处理方法。您可以使用嵌套表单,在这种情况下,很难确定前面的所有菜单组合。让表单决定在菜单中输出什么-这是他们的头痛和责任。
发布于 2016-03-11 16:12:46
您可以创建一个包含需要从共享工具栏中使用的通用方法和属性的接口。
然后在表单中实现这些方法。例如,如果接口中有一个NewDocument方法,那么每个类都可以实现该方法。
然后在主表单中,创建一个公共接口类型的属性ActiveForm,以存储对活动窗体的引用。另外,如果您使用的是多个表单基础结构,它可以让您知道活动窗口,您可以将其转换为您的公共接口类型。
然后,在主表单中,当您单击一个按钮,就像新建文档按钮一样,您可以调用ActiveForm.NewDocument,它将运行活动表单的实现。
https://stackoverflow.com/questions/35944627
复制相似问题