我有一个类似桌面的应用程序,它有2个控制器:'桌面'代表桌面图标,'任务栏'代表任务栏,你可以找到按钮来最小化/恢复已经打开的窗口,比如MS Windows正在运行。
我目前遇到的问题是“如何显示窗口”的方法。双击图标后,我应该创建一个窗口,这可能发生在桌面控制器或任务栏控制器上(或者可能直接在视口上,因为它们可以拖到任何地方)。但是,当我创建一个窗口时,应该在任务栏上创建一个新按钮以最小化/恢复它。
因此,我考虑在任务栏控制器中处理窗口,但是我不知道如何从桌面控制器到达任务栏控制器。
目前我脑子里有3个想法:
所以,我的问题是:
感谢您的回答
答案 0 :(得分:1)
我有类似的设置。我个人会选择2.有两种方法可以解决这个问题。一种是让父母同时包含桌面和任务栏作为其子项,它可以管理两者之间的通信。您可以创建父级侦听的自定义事件,并将它们定向到正确的子级。
因此,例如,父级创建任务栏和桌面,并在桌面上侦听图标点击事件。当图标上出现单击事件时,父级接收事件,然后在内部确定需要执行的操作。在这种情况下,它知道它需要调用任务栏并为其上的打开窗口创建按钮。
您还可以在JavaScript中使用Mediator设计模式来注册发件人和侦听器。所以你可以发送它,桌面是图标点击事件的发送者,任务栏是这些事件的监听者。单击该图标将向调解器中设置的所有侦听器发送事件。这样您就不需要父级来管理它。但个人我更喜欢父母。