2010-01-21 79 views
1

如果我有一个可通过菜单项或配置窗口访问的设置,这些设置可以在运行时更改,例如“粗体文本开启/关闭”;确保所有适用组件都意识到此设置的价值的一些好方法是什么?在gui应用程序中管理设置的一些好方法是什么?

+0

你正在处理什么语言? – Clutch 2010-01-21 15:19:38

+0

爪哇,但我不认为这是真的有关。如果在其他语言中有好的机制,也许我会很好地模仿他们使用的语言。 – 2010-01-22 07:58:30

回答

0

你没有提供实现语言的细节,所以asnwer会有些泛型。 假设您的GUI采用支持模型(例如Java)的语言,只需为任何应该受设置影响的组件以及在“设置已更改”事件时触发的组件设置事件处理程序。然后从设置配置窗口中调用此类事件。不要忘记在所有组件更新完毕后重新绘制(当每个组件更新时重新绘制)。

另一点是希望有通用的子组件使用。例如,如果您使用具有可配置特定字体的标签文本,则使用一个通用的“可配置字体标签”类,以确保您无需将上述事件侦听器分配给您创建的每个标签。

+0

那么你如何控制这个听众注册呢?你会有一些EventHandlerService是全局可用的东西可以注册吗?将引用传递给每个可能需要它的组件似乎并不实际。 – 2010-01-22 08:01:32

+0

我非常想指出,事件处理程序服务将是一个静态的全局对象,但我几乎肯定有一个更好的模式,我现在不记得了。 – DVK 2010-01-22 17:18:26

0

如果将会有很多设置我已经实现了一个sqlite数据库来保存文件中少量更改键值对的更改就足够了。然后实现一个观察者设计模式,以便在完成任何更改时调用gui类的列表来执行更改。

+0

你如何管理与观察员的参考?当组件注册为观察者时,他们注册了什么?你会把这件事全局化或传递给组件。如果你经过,你是否从同一个地方创建了所有组件? – 2010-01-22 08:03:11

相关问题