在我的应用程序中,我有几个必须相互了解的组件,例如菜单栏和工具栏,它们都需要了解表才能添加或删除作业,还需要知道选择了哪个作业。
因此,我创建了一个名为guiMediator的对象,我将其传递给每个对象,然后它们将自己注册到该对象中,这样它们就可以使用该对象相互访问。它还负责在添加新作业或后台工作人员完成工作时触发事件。
由于它对系统了解很多,这种类型的使用是否在一个地方承担了太多的责任,或者这是模式的正确用法吗?
发布于 2009-05-19 12:40:46
通常情况下,我会使用命令模式来做这样的事情:
因此,您的命令知道所有视图组件,但您的视图组件唯一需要知道的是,当用户完成给定操作时执行哪个命令。
发布于 2009-05-19 12:49:59
我会使用被动视图,你可以读到关于here的内容。
F216
请注意,除了UI界面之外,任何地方都不知道按钮、复选框等。您可以使用该接口来抽象实际的实现。
这会给你带来几个好处。首先,它将记录您的代码如何与UI交互,为您提供一个实现用于自动化测试的模拟对象的位置,最后,您可以更灵活地更改UI。
例如,用可点击的面板代替命令按钮。然后,表单将开始从面板而不是按钮传递单击事件。表单可以忽略每个小部件应该执行的实际命令。UI对象负责这一点。
发布于 2009-05-19 12:33:55
听起来比另一种选择更好...但是,嘿,我娶了最不丑的姐姐;-)
https://stackoverflow.com/questions/882459
复制相似问题