时间:2014-12-17 来源:

策略模式(strategy)行为型模式c#简单例子【数据库】

策略模式(strategy)行为型模式c#简单例子

namespace adapterpattern { public partial class StrategyFrom : Form { public StrategyFrom() { InitializeComponent(); } private void btnDisplay_Click(object sender, EventArgs e) { Context context1 = new Context(new LeftMove ()); context1.moveMethod1(); listBox1.Items.Add(moveData.moveString ); context1.moveMethod2(); listBox1.Items.Add(moveData .moveString ); Context context2= new Context(new RightMove());//算法变动后 context2.moveMethod1(); listBox1.Items.Add(moveData.moveString); context2.moveMethod2(); listBox1.Items.Add(moveData.moveString); } } public interface IProessMove//表达算法抽象(strategy) { void Process(); } public class Context { IProessMove proessMove;//对象组合 public Context(IProessMove proessMove)//策略模式的连接点 { this.proessMove = proessMove; } public void moveMethod1() { proessMove.Process(); moveData.moveString += "方法1;"; } public void moveMethod2() { proessMove.Process(); moveData.moveString += "方法2;"; } } public class moveData//移动算法中用到数据 { public static string moveString { set; get; } } public class LeftMove : IProessMove//移动算法1 { public void Process() { moveData . moveString = "左移动算法"; } } public class RightMove : IProessMove//移动算法2 { public void Process() { moveData.moveString = "右移动算法"; } } public class TopMove : IProessMove//移动算法3 { public void Process() { moveData.moveString = "向上移动算法"; } } }

例子主是运用策略模式分解几种移动算法.

点击次数:2001
作者:
web前端行业资讯
Web new NewsList
英特尔宣布与法拉利跨界合作欲将AI技术用于赛车运动 ,,2018年01月11日甲骨文服务器出漏洞:攻击者用漏洞挖矿获取加密货币 ,,2018年01月11日用深度学习设计图像视频压缩算法:更简洁、更强大 ,,2018年01月11日Ubuntu内核和NVIDIA更新:修复Meltdown和Spectre两处漏洞 ,,2018年01月11日AntDesign3.1.1发布,阿里企业级UI设计语言 ,,2018年01月11日微信「跳一跳」带火小游戏,开发者如何快速上手? ,,2018年01月11日谷歌公布最新安卓系统份额:你用上奥利奥了么? ,,2018年01月11日腾讯开发出“3D音效”算法:普通耳机实现3D实时语音效果 ,,2018年01月11日谷歌工程师点赞中国程序员实现Node.js启动超4倍提速 ,,2018年01月11日三星电子总裁兼CE部门负责人金炫奭:万物互联时代到来 ,,2018年01月11日NVIDIA和大众合作建立智能驾驶助手 ,,2018年01月11日GIMPS项目报告发现已知最大素数 ,,2018年01月11日微软与生物技术公司开展AI驱动的血液检测同时诊断数十种疾病 ,,2018年01月11日微软跨平台移动开发工具套件HockeyApp宣布免费 ,,2018年01月11日《硅谷》里神乎其神的压缩技术,AI正在一点点做出来 ,,2018年01月11日LinuxMint19代号敲定为“Tara”预计2018年5月至6月期间发布 ,,2018年01月11日Facebook发布wav2letter工具包,用于端到端自动语音识别 ,,2018年01月11日开源数据库ArangoDB正进行约1156万美元股权融资 ,,2018年01月11日IntelCPU漏洞闹大:腾讯云紧急升级 ,,2018年01月11日2018年1月全球数据库排名:Redis夺回第八 ,,2018年01月11日Lyft将联手无人驾驶公司于CES上展示无人驾驶汽车 ,,2018年01月11日京东X无人超市首家社会门店开业:刷脸进、微信自动结算 ,,2018年01月11日担心被AI取代是杞人忧天?高晓松跨年演讲说的有几分对 ,,2018年01月11日免费授权技术许可Intel宣布在未来CPU中集成雷电3 ,,2018年01月11日算法决定你在社交媒体上看到的信息 ,,2018年01月11日谷歌安全博客披露“英特尔内核漏洞”更多细节 ,,2018年01月04日Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日基于Linux的移动操作系统,Tizen1.0发布 ,,2016年06月23日GDI+学习之------色彩与图像【Web前端】2015年03月19日编程人员阅读代码的一些小技巧分享2014年01月29日Zend的MVC机制使用分析(一)2014年01月29日机器学习之&&Dual(带约束条件的最优化问题)【研发管理】2014年12月16日解决XP无法停止‘通用卷’的方法合集2014年01月29日类似ipad上的split,左边的tableview控制右边显示不同的视图 【综合】2015年09月02日SQLite3数据库【编程语言】2015年02月04日百度地图api应用标注地理位置信息(js版)2014年01月29日unity3d实现夜视仪效果 【架构设计】2014年12月23日如果让一个18岁的少年拥有40岁的心智和阅历【编程语言】2015年02月25日求相对路径(来自2015年360实习笔试题)【移动开发】2015年08月07日JavaMVC开发框架发布SoybeanMilk-1.0-b4 1,收藏 ,,2016年06月23日Bokehv0.12.5发布,一个Python交互式可视化库 ,,2017年04月06日最近脚本之家网站被DDOS流量攻击2014年01月29日阿里巴巴旗下的淘宝为什么要分离出一个天猫出来? 【编程语言】2015年04月01日hdu1385MinimumTransportCost(Floyd+字典序打印路径)【移动开发】2015年01月24日leetcode_Numberof1Bits_easy 【互联网】2015年06月03日如何将JavaWeb项目转换为Java项目? 【移动开发】2015年02月13日通过.properties文件配置参数 【编程语言】2015年04月02日Andriod全屏处理(视频播放器) 【移动开发】2015年03月16日POJ1167(DFS·剪枝·公交时刻表) 【编程语言】2015年08月04日Highcharts使用表格数据绘制图表【Web前端】2015年07月24日湖畔大学三期面试79家企业平均营收25.9亿元 ,,2016年12月29日用javascript打造搜索工具栏2014年01月29日C.FoxAndNamesCodeforcesRound#290(Div.2) 【编程语言】2015年02月04日看数据结构写代码(41)强连通分量 【编程语言】2015年04月13日Android之BroadcastReceiver 【编程语言】2014年11月26日唱票模式之图书管理---studying 【移动开发】2015年09月08日hdu1037 【编程语言】2015年06月24日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)