设计模式笔记一(strategy pattern)
来源:互联网 发布:java行业薪资 编辑:程序博客网 时间:2024/05/16 07:35
正式步入码工界,遇到第一个问题就是Refractor老的project,让支持新的功能和策略。
无路可退,便踏上了学习设计模式的征程~
路漫漫其修远兮....
言归正传,第一个学习的对象是strategy pattern,策略模式。
个人知识有限,于是乎,请教一下Wikipedia,找到其定义如下:
策略模式作为软件设计模式,指对象有某个行为,但在不同场景下,该行为有不同的实现算法。
说起场景,行为,要想当年玩CS,被别人拿小刀爆头的壮烈场景~
不过也有好处,刚好可以用来解释策略模式~
玩过CS的人都知道,不管警匪都是拿着武器砍对方或者自残(比如可以用手雷)。在不同的场景下,我们会用小刀或者各种不同的枪。
用不同的武器,攻击方式也不一样,比如拿小刀爆头和那小手枪爆头。
首先我们创建一个IWeapon interface来表示各种不同攻击力:
public interface IWeapon { void Use(); }
对于不同的武器,I.E. 小刀,手枪,我们实现IWeapon的方法~
public class Knife : IWeapon { public void Use() { Console.WriteLine("kill with a knife"); } } public class Gun : IWeapon { public void Use() { Console.WriteLine("kill with a gun"); } }
不管警匪,都可以使用不同的武器,所以创建一个CS角色,他/她可以使用不同的武器。
public class CSCharactor { private IWeapon weapon; public void SetWeapon(IWeapon wp) { weapon = wp; } public void Attack() { weapon.Use(); } }
static void main(strings[] args){ IWeapon wp = null; CSCharactor ch = new CSCharactor(); while (true) { string input = Console.ReadLine(); switch (input) { case "1": wp = new Knife(); break; default: wp = new Gun(); break; } ch.SetWeapon(wp); ch.Attack(); }}
0 0
- 设计模式笔记一(strategy pattern)
- 设计模式一:策略模式(Strategy pattern)
- 设计模式(一)The Strategy Pattern 策略模式
- 设计模式学习总结(一)策略模式Strategy Pattern
- 设计模式系列(一)策略模式(Strategy Pattern)
- 设计模式笔记1:策略模式(Strategy pattern)
- 设计模式学习笔记--策略模式(Strategy Pattern)
- 设计模式笔记之Strategy Pattern
- 设计模式--strategy pattern
- 设计模式:策略模式(Strategy Pattern)
- 设计模式----策略模式(Strategy Pattern)
- 【设计模式】策略模式(Strategy Pattern)
- 设计模式(22)-Strategy Pattern
- 设计模式(22)-Strategy Pattern
- 设计模式(22)-Strategy Pattern
- 设计模式(22)-Strategy Pattern
- 设计模式(22)-Strategy Pattern
- Strategy Pattern 策略模式(一)
- 南京java——软件测试培训网站
- 动态改变Store的请求URL
- 【数字图像处理】六.MFC空间几何变换之图像平移、镜像、旋转、缩放详解
- UIALertView的基本用法与UIAlertViewDelegate对对话框的事件处理方法
- Android中的PendingIntent使用注意事项
- 设计模式笔记一(strategy pattern)
- 在Linux里设置环境变量的方法(export PATH)
- 关于Android 布局hdpi,mdpi,ldpi区别
- 如何创建一个非常酷的3D效果菜单(swift)
- 引导页设计的四个优秀案例-DevStore
- 有关Lucene的问题(3): 向量空间模型与Lucene的打分机制
- 刚写的EXCEL分类处理程序
- SSH框架之Hibernate数据库外键如何插入值的问题
- POJ 2239 二分图最大匹配模版