发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 CQRS
1 2 下一页 Go 2

如何设计一个配置系统

2004-06-23 19:43
赞助商链接

比如象Word软件的配置如何实现。

有n个对象,每个对象都需要保存一些参数设置。同时,有一个复杂的Dialog来配置所有这些对象的参数,设置完成后可以立即更新程序。

我本来打算弄一个接口,这个接口可以: LoadParam,SaveParam,ConfigParam(这个会生产一个配置窗体)。所有对象都从这个接口继承。然后当程序需要配置时,调用每一个对象的ConfigParam,把所有产生的配置窗体定位到一个容器Dialog上,形成象一个PageControl一样的结构。

但是想了一下觉得太麻烦了。

还不如直创建一个全局的ConfigDialog对象,显示,更新,读取,保存程序中所有的参数,然后由client代码,把这些参数赋给所有的对象。不过这样我觉得程序太乱了,每个参数信息保存在了两个地方,一个在对象本身,一个在ConfigDialog里,而且对象参数的改变可能不仅仅只由CongfigDialog来改变,这样的话还要随时更新Config里的数据,使Config对象到处被引用,非常混乱。

大家都用的什么好方法呢

2004-06-25 15:27

所有可配置的对象实现Configurable 接口
调用Dialog更新Configuration,然后重新config所有configurable对象

2004-06-27 18:53

感觉象GUI设计这么细微的地方使用模式很难判定,建议先写代码,然后refactoring到某个设计模式,也许没有设计模式可用。

个人认为,在实现很重要功能时,建议使用设计模式,这样便于他人理解,便于自己扩展,对于不重要功能,闭着眼睛写代码,等以后再重整Refactoring即可。

2004-06-27 21:42

要为一大团意大利面条refactoring,真是件困难的事,更坏的是让你后面的代码越来越乱

2004-06-28 20:14

那好,我提个解决模式:
“有n个对象,每个对象都需要保存一些参数设置。同时,有一个复杂的Dialog来配置所有这些对象的参数,设置完成后可以立即更新程序。”

使用Observer模式,Dialog处设定观察点,n个对象为接受激活的通知,一旦激活,每个对象更新自己应该更新的程序。

Observer模式在界面用得多。


2Go 1 2 下一页

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com