再看设计模式之策略模式
来源:互联网 发布:淘宝号出售批发 编辑:程序博客网 时间:2024/06/11 08:13
看的有些慢,一周就复习了一个设计模式,总结一下。
1. 策略模式是定义了一系列算法,并将每一个算法封装起来,而且使它们可以相互替换,让算法独立于使用它的用户而独立变 化。
2. 共有三个角色:(1)Context(应用场景):需要使用ConcreteStrategy提供的算法;内部维护一个Strategy的实例;负责动态 地设置运行时Strategy具体的实现算法;跟Strategy之间的交互和数据传递。
(2)Strategy(抽象策略类):定义了一个公共接口,各种不同的算法以不同的方式实现这个接口,Context 使用这个接口调用不同的算法,一般使用接口或抽象类实现。
(3)ConcreteStrategy(具体策略类):实现了Strategy定义的接口,提供具体的算法实现。
Strategy类
<pre name="code" class="csharp">Abstract class Strategy{ Public abstract void AlgorithmInterface();}ConcreteStrategy类
Class ConcreteStrategyA:Strategy{ Public override void AlgorithmInterface() { Console.WriteLine(“算法A实现”); }}
算法B,C略
Context类
Class Context{ Strategy strategy Public Context(Strategy strategy) { this.strategy=strategy; }Public void ContextInterface() { Strategy. AlgorithmInterface() }}
3. 优点:策略模式提供管理相关算法族的方法;提供了可以替代继承的一种方法;可以使程序避免使用多重选择语句。
缺点:要求客户端必须知道所有的策略类;而且产生了很多策略类。
4.适用情景:如果一个应用中有很多类,这些类的区别主要是行为,则可以使用策略模式动态的在多个行为中选择其一;一个系统需 要多个算法中 动态选择其一,可以使用策略模式。
- 再看设计模式之策略模式
- 再看设计模式之简单工厂模式
- 再看设计模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 设计模式之策略模式
- 实现一个Material效果的ProgressBar
- 黑马程序员---Foundation - NSString
- 二叉搜索树(Binary Search Tree)
- (C/C++学习笔记)多继承的二义性
- ubuntu(English)下安装搜狗拼音
- 再看设计模式之策略模式
- 数据结构 第一遍导图
- eoj 1848 你是ACM吗?
- ModifyMenu的用法
- 代理模式(基础)
- SSH三大框架整合(Hibernate,Spring,struts2)
- Android源代码编译命令m/mm/mmm/make分析
- 模板方法设计模式
- 关于进程间互发信息