转自http://blog.sina.com.cn/s/blog_89d90b7c01017zrr.html

下面的环境是unity3d,用C#进行编码,当然有人会说这是在乱用模式,U3D不一定适合使用这些,其实不然,设计模式是前人总结的编程思想,语言只是工具,根据项目需求使用合理的设计方案就是最好设计模式的体现

// 首先定一个策略接口,这是诸葛亮老人家给赵云的三个锦囊妙计的接口 //
interface IStrategy
{
void Operate();
}
// 走后门,找乔国老帮忙,使孙权不能杀刘备 //
class BackDoor : IStrategy
{
public void Operate()
{
Debug.Log("找乔国老帮忙,让吴国太给孙权施加压力");
}
}
// 求吴国太开个绿灯 //
class GivenGreenLight : IStrategy
{
public void Operate()
{
Debug.Log("求吴国太开个绿灯,放行!");
}
}
// 孙夫人断后,挡住追兵 //
class BlockEnemy : IStrategy
{
public void Operate()
{
Debug.Log("孙夫人断后,挡住追兵");
}
}
// 好了,大家看看,三个妙计是有了,那需要有个地方放这些妙计呀,放锦囊呀: //
class Context
{
private IStrategy straegy;
public Context(IStrategy strategy)
{
this.straegy = strategy;
}
public void Operate()
{
this.straegy.Operate();
}
} public class Strategy : MonoBehaviour
{
private Context context;
void Start ()
{
Debug.Log("刚刚到吴国的时候拆第一个");
context = new Context(new BackDoor());
context.Operate(); Debug.Log("刘备乐不思蜀了,拆第二个了");
context = new Context(new GivenGreenLight());
context.Operate(); Debug.Log("孙权的小兵追了,咋办?拆第三个");
context = new Context(new BlockEnemy());
context.Operate();
}
}

开发设计模式(三)策略模式(Strategy Pattern)的更多相关文章

  1. 乐在其中设计模式(C#) - 策略模式(Strategy Pattern)

    原文:乐在其中设计模式(C#) - 策略模式(Strategy Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 策略模式(Strategy Pattern) 作者:webabc ...

  2. 反馈法学习设计模式(一)——策略模式Strategy Pattern

    简介(Introduction) 之前学习Java8实战时,遇到一个很好的策略模式示例.便想着借着这个示例结合反馈式的方法来,学习策略设计模式,也以便后面反复琢磨学习. 首先我们通过练习,逐步写出符合 ...

  3. 8.6 GOF设计模式四: 策略模式… Strategy Pattern

    策略模式… Strategy Pattern  在POS系统中,有时需要实行价格优惠, 该如何处理?  对普通客户或新客户报全价  对老客户统一折扣5%  对大客户统一折扣10%  注:课件 ...

  4. 二十四种设计模式:策略模式(Strategy Pattern)

    策略模式(Strategy Pattern) 介绍定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换.本模式使得算法的变化可独立于使用它的客户. 示例有一个Message实体类,对它的操作有 ...

  5. 设计模式原来如此-策略模式(Strategy Pattern)

    策略模式中体现了两个非常基本的面向对象设计的原则:1.封装变化的概念.2.编程中使用接口,而不是对接口的实现. 策略模式的定义:定义一组算法,将每个算法都封装起来,并使它们之间可以互换.策略模式使这些 ...

  6. 【UE4 设计模式】策略模式 Strategy Pattern

    概述 描述 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换.策略模式让算法的变化不会影响到使用算法的客户. 套路 Context(环境类) 负责使用算法策略,其中维持了一 ...

  7. 设计模式(一):“穿越火线”中的“策略模式”(Strategy Pattern)

    在前段时间呢陆陆续续的更新了一系列关于重构的文章.在重构我们既有的代码时,往往会用到设计模式.在之前重构系列的博客中,我们在重构时用到了“工厂模式”.“策略模式”.“状态模式”等.当然在重构时,有的地 ...

  8. HeadFirst设计模式读书笔记(1)-策略模式(Strategy Pattern)

    策略模式(Strategy Pattern): 定义了了算法簇,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户端. 第一个设计原则:找出应用中可能需要变化之处,把他们独立 ...

  9. 设计模式 - 策略模式(Strategy Pattern) 具体解释

    策略模式(Strategy Pattern) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26577879 本文版权全 ...

  10. JAVA设计模式之策略模式 - Strategy

    在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改.这种类型的设计模式属于行为型模式. 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 ...

随机推荐

  1. Internationalization

    Internationalization If you are building a site for an international audience, you will likely want ...

  2. .Net 与 Java 的服务接口相互调用

    本文介绍.Net 与 Java 相互调用的例子.下面的介绍主要包括三方面:一是通过常用Web服务进行相互调用,二是使用TCP/IP套接字进行相互调用,三是使用Remote实现远程对象相互调用. 首先说 ...

  3. CSS 之 清除 float 常用的方法

    大多数前端使用.clearfix:after{ .....}  和 .clearit{....}的组合来清除浮动. 前端开发经常用到浮动 float:left; float:right; 有浮动就需要 ...

  4. 电商ERP常见功能模块

      电商ERP是适用企业卖家的专业电子商务ERP,支持淘宝.天猫.京东.1688.当当.苏宁.拍拍.唯品会.亚马逊.独立B2C等多网络销售渠道:也包括 异地多仓..货位管理.智能配货等专业的WMS(仓 ...

  5. servlet案例

    1.重定向 方式1:在servlet中写:response.setStatus(302);      response.setHeader("Location","路径& ...

  6. 圆满完成Web安全测试培训课程广州公开班!

    圆满完成Web安全测试培训课程广州公开班! http://gdtesting.com/news.php?id=187 下期<Web安全测试最佳实践>公开课通知:8月9.10日地点:广州 课 ...

  7. Arp欺骗攻击的另类应用之屌丝泡妞记

    http://www.2cto.com/Article/201210/163974.html   arp欺骗,我想大家都应该知道怎么回事了.不知道的去问度娘...   就不废话了,还是直接上图上教程比 ...

  8. java常用linux命令

    1.ifconfig查看ip 2.查询 例如:find / -name httpd.conf 3.查看是否有tomcat进程 ps –ef|grep tomcat 来查看是否有tomcat进程 4.杀 ...

  9. ubuntu下使用quick2wire控制RespberryPi2的I2C

    首先,开启树莓派的I2C驱动: 查看I2C驱动是否已经被加载:ls /dev -l | grep i2c,如果有形如 i2c-x 的显示结果表明驱动已经加载,否则驱动没有加载,需要进行如下操作: 修改 ...

  10. symonfy 项目根目录下没有 bin/console 文件的解决方法

    “Could not open input file: bin/console” Error comes when try to Run the Symfony Application 在采纳的答案中 ...