如果我有一个可通过菜单项或配置窗口访问的设置,这些设置可以在运行时更改,例如“粗体文本开启/关闭”;确保所有适用组件都意识到此设置的价值的一些好方法是什么?在gui应用程序中管理设置的一些好方法是什么?
回答
你没有提供实现语言的细节,所以asnwer会有些泛型。 假设您的GUI采用支持模型(例如Java)的语言,只需为任何应该受设置影响的组件以及在“设置已更改”事件时触发的组件设置事件处理程序。然后从设置配置窗口中调用此类事件。不要忘记在所有组件更新完毕后重新绘制(当每个组件更新时重新绘制)。
另一点是希望有通用的子组件使用。例如,如果您使用具有可配置特定字体的标签文本,则使用一个通用的“可配置字体标签”类,以确保您无需将上述事件侦听器分配给您创建的每个标签。
那么你如何控制这个听众注册呢?你会有一些EventHandlerService是全局可用的东西可以注册吗?将引用传递给每个可能需要它的组件似乎并不实际。 – 2010-01-22 08:01:32
我非常想指出,事件处理程序服务将是一个静态的全局对象,但我几乎肯定有一个更好的模式,我现在不记得了。 – DVK 2010-01-22 17:18:26
如果将会有很多设置我已经实现了一个sqlite数据库来保存文件中少量更改键值对的更改就足够了。然后实现一个观察者设计模式,以便在完成任何更改时调用gui类的列表来执行更改。
你如何管理与观察员的参考?当组件注册为观察者时,他们注册了什么?你会把这件事全局化或传递给组件。如果你经过,你是否从同一个地方创建了所有组件? – 2010-01-22 08:03:11
- 1. 在Android应用程序中散列密码的一些好方法是什么?
- 2. 什么是管理Postfix的好方法?
- 3. RoR中应用程序设置的推荐方法是什么?
- 4. 在实现程序的配置设置时,什么是一个好方法?
- 5. 什么是一些重用配置部分的好方法?
- 6. 在Rails应用程序中管理多页JavaScript的最佳方法是什么?
- 7. 什么是在谷歌应用程序引擎中管理flashdata的好框架?
- 8. 在Meteor应用程序中设置Textarea的值的正确方法是什么?
- 9. 将Web应用程序放置在各大洲。什么是最好的方法?
- 10. 是否有第三方GUI来管理OTP应用程序?
- 11. 什么是为应用程序提供帮助的好方法?
- 12. 什么是组织PHP网站应用程序的好方法?
- 13. 什么是开发ios应用程序前端的好方法?
- 14. 什么是包装Django应用程序的好方法?
- 15. 什么是一些很好的postgresql管理界面?
- 16. 在SWT中管理应用程序屏幕的最佳方式是什么?
- 17. 在Windows Mobile应用程序中存储应用程序设置的首选方法是什么?
- 18. 设置java应用程序的最佳方式是什么?
- 19. 在PHP中设置管理区域的最安全方法是什么?
- 20. App Engine应用程序中的管理网址是什么?
- 21. 什么是一些好的Wireshark教程?
- 22. 什么是在Android应用程序中缓存信息的好方法?
- 23. 在jQuery应用程序中存储模型数据的好方法是什么?
- 24. 在Scala中保持全局应用程序状态的好方法是什么?
- 25. 在Android应用程序中显示启动消息的好方法是什么?
- 26. 处理应用程序配置的最佳做法是什么?
- 27. 为什么应用程序设置在app.config中是只读的?
- 28. 什么是故事板应用程序的一些工具,包括GUI?
- 29. 什么是构建聊天应用程序的理想方法?
- 30. 什么是管理您的应用程序计划的本地通知的好方法?
你正在处理什么语言? – Clutch 2010-01-21 15:19:38
爪哇,但我不认为这是真的有关。如果在其他语言中有好的机制,也许我会很好地模仿他们使用的语言。 – 2010-01-22 07:58:30