读书笔记2:策略模式
来源:互联网 发布:武汉理工大学网络大专 编辑:程序博客网 时间:2024/06/03 19:16
策略模式:定义了算法家族,分别封装起来,让它们之间可以互相替换,
此模式让算法的变化,不会影响使用算法的客户。
此模式让算法的变化,不会影响使用算法的客户。
我觉得,策略模式有点类似于工厂模式:继承一个父类,不同的子类实现父类的方法都不同,然后根据需求初始化相应的子类。不同的是策略模式是针对算法的,工厂模式可以使用所有这种情况。
依然以截取网页功能为例:
截取算法父类:
对于不同的网页截取算法不同,可以抽象一个父类,它有一个截取算法
public class ReadStrategeSuper { public abstract string ReadWebPage(){} }
对于第一种网页对应算法一:
public class ReadStratege1:ReadStrategeSuper { public overrride string ReadWebPage(){算法1;} }
对于第二种网页对应算法二:
public class ReadStratege2:ReadStrategeSuper { public overrride string ReadWebPage(){算法2;} }
... ...
有一个Context来决定采用哪种策略。
public class Context { ReadStrategeSuper readSuper; public Context(ReadStrategeSuper readSuper) { this.readSuper = readSuper; } public string GetResult() { return readSuper.ReadWebPage(); } }
调用
main() { Context context; 第一种网页 context = new Context(new ReadStratege1()); string resultStr1 = context.GetResult(); 第二种网页 context = new Context(new ReadStratege2()); string resultStr2 = context.GetResult(); ... ... }
这样的好处是算法独立,易于修改维护,缺点是类太多,对于算法很多的情况,类太多管理反而不太方便。
- 读书笔记2:策略模式
- 读书笔记2:策略模式
- 《大话设计模式》读书笔记2 策略模式
- 读书笔记--策略模式
- 《设计模式》读书笔记:策略模式
- 设计模式读书笔记-----策略模式
- 设计模式读书笔记--策略模式
- 设计模式读书笔记-----策略模式
- 《企业应用架构模式》读书笔记2-分布策略
- 设计模式读书笔记之策略模式(Strategy)
- 《读书笔记》设计模式——策略模式
- 【Head First设计模式-读书笔记】策略模式
- 设计模式读书笔记之策略模式(Strategy)
- 大话设计模式读书笔记之策略模式
- 《设计模式之禅》读书笔记-策略模式
- 读书笔记---Head First 设计模式--- 策略模式
- 大话设计模式读书笔记之策略模式
- 第二章 商品促销-策略模式(读书笔记)
- 我很纠结
- CString::GetLength()总是返回0
- android学习笔记19--------------Spinner 下拉列表的用法
- WinCE 自动运行自定义程序
- Struts2 整合 Spring 应用实例
- 读书笔记2:策略模式
- getLaunchIntentForPackage 获取到的为null原因
- flume配置文件
- MYSQL where 1=1 的作用
- 离散傅里叶变换
- 功能函数整理(1)
- NSDate长整型转换
- 电容(二)
- 用SSH KEY远程登录