.NET中的设计模式 - 策略模式&状态模式
2010-10-28 13:31:28 来源:WEB开发网核心提示:下面举两个实际中的例子.一,在移动网络优化中,一般可以采用遗传算法,模拟退火算法和基于拓扑关系的算法.实际项目中,往往我们可以根据不同情况采用不同的算法,而客户对用什么算法往往并不关心.如果出现了第四种算法,工程师需要知道,而客户一样不需要知道.二,基于GIS组件的二次开发,出了已有地图鼠标操作外,我们往往需要添加自己
下面举两个实际中的例子.
一,在移动网络优化中,一般可以采用遗传算法,模拟退火算法和基于拓扑关系的算法.实际项目中,往往我们可以根据不同情况采用不同的算法,而客户对用什么算法往往并不关心.如果出现了第四种算法,工程师需要知道,而客户一样不需要知道.
二,基于GIS组件的二次开发,出了已有地图鼠标操作外,我们往往需要添加自己的鼠标行为,此时一个良好的设计是我们扩展鼠标的状态,扩展鼠标的行为,让后将他们对应起来.同时不影响原来的鼠标行为.基因
请仔细比较下面代码片断的细节差异.
1.策略模式
2.状态模式
public void Topology(){ //通过拓Topology式计算A获取结果B } public void Gene(){ //通过Gene方式计算A获取结果B } public void Simulation(){ //通过Simulation方式计算A获取结果B } public void Strategy() { string flag = ""; if (flag == "Topology") Topology(); else if (flag == "Gene") Gene(); else if (flag == "Simulation") Simulation(); //work complated }
public override void Action(string mouseState){ base.Action(mouseState); if (mouseState == "Pan") Pan(); else if (mouseState == "Select") Select(); } public void Pan() {/*平移地图*/} public void Select(){/*选择图形*/}
Tags:.NET中的设计模式 - 策略模式&状态模式
编辑录入:爽爽 [复制链接] [打 印]- ››.NET中的设计模式 - 策略模式&状态模式
- ››Netpas加速 让非电信宽带用户流畅上网
- ››net中fckediter的图片上传时候点击\浏览服务器\出...
- ››Netmsg局域网聊天程序
- ››NetAirus指控苹果iPhone侵犯其专利
- ››Netflix 在线影视播放程序将登陆 iPhone
- ››Net中各种不同的对象创建方式的速度差异
- ››NetNewsWire 功能简单 界面快速 Reader 浏览器
- ››NET-使用Js调用WebService
- ››Net 应用程序如何在32位操作系统下申请超过2G的内...
- ››NET 4.0新特性-- Corrupted State Exceptions
- ››NET应用程序的本地化及RESGEN.exe, AL.exe介绍
更多精彩
赞助商链接