设计模式回顾系列文章: 主要针对工作中常用常见的设计模式进行整理、总结,同时分享以供大家拍砖。
------------------------------------------------
策略模式:
根据所处的上下文,使用不同的业务规则或算法。
将算法的选择和算法的实现相分离。允许根据上下文进行选择。
让使用算法的类(Context)包含一个抽象类(Strategy),该抽象类有一个抽象方法指定如何调用算法。每个派生类按需要实现算法。
程序实现:
1、算法接口:
public interface Strategy {
public void algorithm();
}
2、算法实现1:
public class FirstStrategy implements Strategy {
public void algorithm() {
System.out.println("THE FIRST STRATEGY!!!");
}
}
3、算法实现2:
public class SecondStrategy implements Strategy{
public void algorithm() {
System.out.println("THE SECOND STRATEGY!!!");
}
}
4、使用算法的类:
public class Context {//策略使用类
private Strategy strategy;
public void setStrategy(Strategy str){//设置策略
this.strategy=str;
}
public void doStrategyWork(){//使用策略
strategy.algorithm();
}
}
5、程序入口:
public static void main(String[] args){
Context c=new Context();//策略使用类
Strategy a1=new FirstStrategy();//实例化策略1
c.setStrategy(a1);//设置策略1
c.doStrategyWork();//让策略1工作
Strategy a2=new SecondStrategy();//实例化策略2
c.setStrategy(a2);//设置策略2
c.doStrategyWork();//让策略2工作
c.setStrategy(a1);
c.doStrategyWork();
}
举例:不同的业务场景使用不同的业务规则(如计费、价格等)。
分享到:
相关推荐
走进设计模式之 策略模式(Strategy) 代码
C#面向对象设计模式纵横谈(23):(行为型模式) Strategy 策略模式
设计模式C++学习之策略模式(Strategy)
【Java设计模式】(2)策略模式Strategy
创建模式: 设计模式之Factory 设计模式之Prototype(原型) 设计模式之Builder 设计模式之Singleton(单态) ...设计模式之Strategy(策略) 设计模式之Mediator(中介者) 设计模式之Interpreter(解释器) 设计模式之Visitor
C#面向对象设计模式 (行为型模式) Strategy 策略模式 视频讲座下载
36种最新设计模式整理 Design Pattern: Simple Factory 模式 Design Pattern: Abstract Factory 模式 Design Pattern: Builder 模式 Design Pattern: Factory Method 模式 Design Pattern: Prototype 模式 ...
2、爪哇语言抽象工厂创立性模式介绍 3、工厂方法创立性模式介绍 4、单态创立性模式介绍 5、单态创立性模式介绍 6、观察者模式介绍7、责任链模式 8、设计模式之Observer 9、设计模式之Strategy(策略) 10、设计模式之...
这份文档讲诉了设计模式之策略(Strategy)模式,希望可以帮助学习的人!
设计模式参考文档 创建模式: 设计模式之Factory 设计模式之Prototype(原型) 设计模式之Builder ...设计模式之Strategy(策略) 设计模式之Mediator(中介者) 设计模式之Interpreter(解释器) 设计模式之Visitor
设计模式-策略模式(Strategy)结合Android小知识讲解,简单明了
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第23节:行为型模式Strategy策略模式
讲 师:李建忠 上海祝成信息科技... C#面向对象设计模式纵横谈(23):(行为型模式) Strategy 策略模式 C#面向对象设计模式纵横谈(24):(行为型模式) Visitor 访问者模式 C#面向对象设计模式纵横谈(25):设计模式总结
在策略模式(Strategy Pattern)中一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。
定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。
设计模式精解(Design Patterns Explained) ...如何实现关键模式——Strategy(策略)、Observer(观察者)、Bridge(桥接)、Decorator(装饰)等等。 共同点/变化点分析、设计模式以及它们如何帮助理解抽象类。
c++设计模式-行为型模式-策略模式;qt工程;c++简单源码; 策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于...
strategy策略模式源码 策略模式源码 策略模式源码 策略模式源码
设计模式 策略模式。金典模式之策略模式代码。
整个设计模式领域还很新,本书的四位作者也许已占据了这个领域造诣最深的专家中的半数,因而他们定义模式的方法可以作为后来者的榜样。如果要知道怎样恰当定义和描述设计模式,我们应该可以从他们那儿获得启发”--steve...