(旧文重贴)昨夜看了严宏的《java与模式》
这两天在作AutoUpdate,就是基于SmartClient方式的,客户端自动升级程序。本来我可以采用BITS(MS的一个service,WindowsUpdate即是基于它做的)来作,但是BITS有一个毛病。。。这个毛病等有时间在写。
作AutoUpdate,我做了大约7个component UI,然后有5、6个utils,和一个mainform。每个ui之间不直接进行通讯,而是通过delegate把这个事件“上浮”,一直浮到某个“控制者”手中。在我的代码中,就是浮到了mainform上,然后由winform再调用适当的ui的某个方法把这些事件传递回去。这种方式,非常象proxy模式,或者说,很象.net remoting的远程通信模式。
看了严宏的书,我猛然想起来,这个功能是完全可以用“责任链”来作的。我的应用基本上符合责任链的定义:消息或转发或扬弃、mainform负责每个ui的事件的调度。但是这种方式有一个很大的缺点,事件上浮造成的成本比较高。从我的感觉就能看出来,编码成本高、维护成本高、效率低。书中说,可以采用观察者模式来解决这个问题(他举的是j2ee中AWT1.0和1.1实现的差别)。
晚上再看看吧!
2003年12月28日 8:54
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?