.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介绍
更多精彩
赞助商链接
