设计模式之策略模式
来源:互联网 发布:linux运维工资高吗 编辑:程序博客网 时间:2024/06/05 18:13
策略模式(strategy):定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。
通俗的说,就是一个客户可能需要多种不同的算法(方法,要求等),但是是为了实现一个功能,比如都是为了商场促销,为了让这些算法类与使用算法类之间减少耦合,抽象出它们之间共有的功能,抽象为一个父类,然后使用一个类似工厂的类来管理这些类,也就是根据客户端的要求来实例化不同的类。
using System;namespace Strategy{class Program{static void Main(string[] args){Context context;context = new Context(new ConcreteStrategyA());context.ContextInterface();context = new Context(new ConcreteStrategyB());context.ContextInterface();Console.ReadKey();}}//定义所有支持的算法的公共接口(共同方法,以便统一调用)abstract class Strategy{public abstract void AlgorithmInterface();}class ConcreteStrategyA : Strategy{public override void AlgorithmInterface(){Console.WriteLine("具体算法A实现");}}class ConcreteStrategyB : Strategy{public override void AlgorithmInterface(){Console.WriteLine("具体算法B实现");}}class Context{Strategy strategy;//初始化时传入具体的策略对象public Context(Strategy strategy){this.strategy = strategy;}//调用具体的方法public void ContextInterface(){strategy.AlgorithmInterface();}}}
0 0
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 详解Hibernate中的一级缓存
- 逻辑运算符与计算机中的移位 -2009-2
- SpringMVC Controller中的service为null
- Java 8之Stream适用场景
- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ----
- 设计模式之策略模式
- A星算法,找寻最短路径
- 【JavaScript】BOM总结
- HDOJ 1285 确定比赛名次(拓扑排序)
- OC的Runtime(运行时)机制的解析
- 最新的Mac系统中,TextEdit如何保存txt
- PHP写文件——将用户提交的数据保存到服务器的文件中
- GitHub 优秀的 Android 开源项目
- Apache 2.4.16 版本 编译安装步骤