设计模式:策略模式
2016-03-08 10:20
246 查看
策略模式(Strategy):它定义了算法家族,分别封装起来,让它们这件可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。
View Code
测试代码:
策略与简单工厂结合:
namespace StrategyDesignPattern { //抽象算法类 public abstract class Strategy { //算法方法 public abstract void AlgorithmInterface(); } //具体算法A public class ConcreateStrategyA:Strategy { //算法A实现方法 public override void AlgorithmInterface() { Console.WriteLine("算法A实现"); } } //具体算法B public class ConcreateStrategyB : Strategy { //算法A实现方法 public override void AlgorithmInterface() { Console.WriteLine("算法B实现"); } } //上下文 public class Context { Strategy Strategy; public Context(Strategy strategy) { Strategy = strategy; } //上下文接口 public void ContextInterface() { Strategy.AlgorithmInterface(); } } }
View Code
测试代码:
public void StrategyTest() { Context context; context = new Context(new ConcreateStrategyA()); context.ContextInterface(); context = new Context(new ConcreateStrategyB()); context.ContextInterface(); }
策略与简单工厂结合:
public Context(string type) { switch(type) { case "A": Strategy = new ConcreateStrategyA(); break; case "B": Strategy = new ConcreateStrategyB(); break; } }
相关文章推荐
- 遗传算法入门到掌握(一)
- 分布式消息处理Kafka入门
- eclipse中maven配置文件pom.xml解析报错
- linux中udev简单的用法
- merge理解
- 求解两个字符串的最长公共子串
- 如何在SpringMVC中获取request对象
- POJ 3384 Feng Shui 半平面交
- jQuery获取屏幕的宽度
- SPRING IN ACTION 第4版笔记-第九章Securing web applications-008-使用非关系型数据库时如何验证用户(自定义UserService)
- static inline func 内联函数
- jQuery实现带水平滑杆的焦点图动画插件
- linux下用/proc/stat文件来计算cpu的利用率
- java设计模式——创建型之原型模式
- 支付系统开发中可能遇到的问题
- 前端学习-jQuery源码学习
- 查看用户登录命令last
- Leetcode ☞ 147. Insertion Sort List ☆
- 11.leetcode题目171: Excel Sheet Column Number
- 正则表达式之PHP篇split 与 php函数explode