windowsmobile:实用设计模式的 2--Strategy模式续 Strategy模式在Windows Mobile网络连接管理的应用来源: 发布时间:星期三, 2009年9月2日 浏览:47次 评论:0
本文主要讲述Strategy模式在Windows Mobile网络连接管理应用经过实用设计模式的 2--Strategy模式讨论对Strategy模式进步研究有了些新认识Strategy模式使用最为广泛情景是封装区别算法使得客户端不关心具体算法处理因此我使用stragety模式最多是在 Analysis Engine(分析引擎)根据Raw Data(原数据)使用不要分析器(分析器使用区别算法)分析出关心Event(事件对象告警等等)同时作为behavior模式的stragety模式也可以使用在 定义多个behaviors(行为在C#中可以为method或者property)来代替大量条件语句( 或者switch)情景
下面是用案例论述有个Windows Mobile手机系统需要定期往服务器提交数据在数据传输时需要网络连接由于这个手机支持3G和Wi因此可以通过多种硬件连接进行数据提交下面是个没有用到OO设计 public enum ConnectionType 数据提交(Client)每次提交数据都需要CheckConnection,MakeConnection(如果需要)StopConnection这些behaviors.但是由于硬件连接有多种需要使用条件语句( 或者switch )来表达区别behavior如果新增种新网络连接方式例如新增GPRS那么需要修改client来完成试想下应用应该不关心具体网络连接例如msn和QQ不管Windows连接这个链接可能是wi可能是有线网络可能是拨号作为上层应用msn和QQ不会关心这些具体网络连接技术msn更加不可能需要修改来支持新网络连接方式为了解决这个问题我们引进Strategy模式 public enum ConnectionType Connection是Strategy父类定义需要实现behaviors(在C#里面是method和property)ConnectionManager是Context负责管理各个具体connection在connection里面使用了简单工厂和Reflectionconnection通过配置文件来生成当新增新连接技术时只需要增加Connection子类实现他behaviors修改简单工厂配置文件就可以了这样client根本不需要知道新连接技术原先功能(数据提交)可以使用新连接技术而不需要任何修改 有关工厂模式和Reflection我打算在下篇进行论述 0
相关文章
读者评论发表评论 |