转自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();
}
}

最新文章

  1. .NET中AOP方便之神SheepAspect
  2. linux 命令笔记
  3. Java 查漏补缺
  4. SQL的内连接与外连接
  5. 网络智能和大数据公开课Homework3 Map-Reduce编程
  6. U盘常见故障及检修
  7. python之集合
  8. Linux学习记录--文件IO操作相关系统编程
  9. 全局程序集缓存GAC
  10. ionic3/4 使用NavController 返回两层的方式
  11. 【模板】可持久化文艺平衡树-可持久化treap
  12. 迅为6818开发板-Cortex-A5架构丨支持4G全网通丨GPS丨WIFI丨另有丰富的扩展模块
  13. 性能测试六:jmeter进阶之Cookie与header管理器
  14. 多线程开发之一 NSThread
  15. jenkins+maven+git+tomcat+salt自动构建
  16. java调用url
  17. 本周java 学习进度报告
  18. php支付宝开发
  19. Unity -----一些可能存在的错误
  20. 一个方便的java分页算法

热门文章

  1. Android View的绘制机制流程深入详解(一)
  2. 有(无)符号char型及其溢出问题
  3. mapping 详解3(Meta-Fields)
  4. cell函数总结
  5. 到目前为止,Linux下最完整的Samba服务器配置攻略
  6. git 配置用户名和邮箱
  7. [转载][记录]shell 批量修改文件名
  8. jQuery mouseover与mouseenter,mouseout与mouseleave的区别
  9. 使用自签SSL证书有什么风险?
  10. 基于node/mongo的App Docker化测试环境搭建