设计模式笔记之Strategy Pattern
来源:互联网 发布:mac两个显示器 编辑:程序博客网 时间:2024/06/04 18:25
策略模式: Strategy Pattern
概括: 定义了算法家族(interface),分别分装起来(实现该interface), 算法之间可以互相替换, 把它们内嵌入工作类提供给用户使用, 从而不会影响用户使用的接口,而只需要维护工作类中使用的具体算法。
关键字: Has a
重点: 使用Has-a取代简单的Is-a关系, 通过在抽象基类中增加一个策略类来达到Has-a的关系,这样所有的子类,都可以使用自己设定的策略来完成工作.
类图:
简单例子: 摘录自VTC Design Pattern教程
抽象基类:
public abstract class Vehicle
{
private GoAlgorithm goAlgorithm;
public Vehicle()
{
}
public void setGoAlgorithm (GoAlgorithm algorithm)
{
goAlgorithm = algorithm;
}
public void go() {
goAlgorithm.go();
}
}
----------------------策略接口及类:
public interface GoAlgorithm
{
public void go();
}public class GoByDrivingAlgorithm implements GoAlgorithm
{
public void go()
{
System.out.println("Now I'm driving.");
}
}public class GoByFlyingAlgorithm implements GoAlgorithm
{
public void go() {
System.out.println("Now I'm flying.");
}
}--------------------------------------------------------------------------------------
实际用户子类:
public class Jet extends Vehicle
{
public Jet()
{
setGoAlgorithm(new GoByFlyingFastAlgorithm());
}
}
- 设计模式笔记之Strategy Pattern
- 设计模式之Strategy Pattern
- 设计模式之Strategy Pattern
- 设计模式之策略模式(Strategy Pattern)
- 设计模式之策略模式---Strategy Pattern
- 设计模式之策略模式(Strategy Pattern)
- 设计模式之策略模式 | Strategy Pattern
- 设计模式之策略模式(Strategy Pattern)
- 设计模式之策略模式-Strategy Pattern
- 设计模式笔记一(strategy pattern)
- 设计模式--strategy pattern
- Design Pattern-Strategy Pattern 设计模式之策略模式
- java设计模式24种之strategy-pattern设计模式
- 设计模式笔记1:策略模式(Strategy pattern)
- 设计模式学习笔记--策略模式(Strategy Pattern)
- 设计模式系列之二:策略模式(Strategy Pattern)
- 大话设计模式之策略模式(Strategy Pattern)
- 设计模式之三 --- 策略模式(Strategy Pattern)
- allegro学习笔记
- python+django+mysql学习笔记
- 内核配置和编译
- gcc 参数详解
- POJ2230 Watchcow 欧拉回路[dfs+邻接表]
- 设计模式笔记之Strategy Pattern
- 实例:Linux EXT3文件系统下成功恢复误删的文件
- How to Read SQL Syntax
- java.lang.UnsupportedClassVersionError: Unsupported major.minor version 49.0的错误
- GPRS CMS&CME error code
- Sql 截取、替换 字符串 ,数据批量导入
- 使用Axis2的底层API开发Web Service Server端
- 安装Make Menuconfig所需内核编译环境和图形库
- Oracle undo 自动调优