在我的应用程序中,我有几个必须彼此了解的组件,例如菜单栏和工具栏,它们都需要知道要添加或删除作业的表以及找出选择的作业
所以,我创建了一个名为guiMediator
的对象,我将它传递给每个对象,然后用它们自己注册,以便它们可以使用该对象相互联系。它还负责在添加新工作或后台工作人员完成工作时触发事件。
由于它对系统了解很多,这种用法在一个地方是否有太大的责任,或者这是模式的正确用法?
答案 0 :(得分:3)
通常我会使用命令模式:
因此,您的命令可以了解所有视图组件,但视图组件唯一需要知道的是当用户完成给定操作时要执行的命令。
答案 1 :(得分:1)
我会使用被动视图,您可以阅读here。
请注意,UI界面之外的任何地方都无法了解按钮,复选框等。您可以使用Interface来抽象实际的实现。
这会给你带来几个好处。首先,它将记录您的代码如何与UI交互,为您提供实现模拟对象以用于自动化测试的位置,并最终允许更改UI的更多自由度。
例如替换可点击面板而不是命令按钮。然后,表单将开始从面板而不是按钮传递单击事件。表单可能仍然不知道每个小部件应该执行的实际命令。 UI对象负责处理。
答案 2 :(得分:-3)
听起来比另类更好......但是,嘿,我和最丑陋的妹妹结婚了; - )