一、策略模式也叫算法族模式,就是定义了不同的算法族,并且之间可以相互替换,此模式让算法的变化独立于使用算法的客户。策略模式的好处在于可以动态的改变对象的行为。策略模式适用于当一个应用程序需要实现一种特定的服务或者功能,而且该程序有多种实现方式时使用。
二、设计原则:将一个类中经常改变或者将来有可能改变的部分提取出来,作为一个接口,然后在类中包含这个对象的实例,这样类的实例在运行时就可以随意调用实现了这个接口的类的行为。
策略模式中有三个对象:
a.环境对象:该类中实现对抽象策略中定义的接口或者抽象类的引用
b.抽象策略对象:它可由接口或者抽象类来实现
c.具体策略对象:封装了实现
抽象策略对象:
package com.yangguangfu.strategy; /** * 首先定义一个策略接口 */ public interface IStrategy { //定义这个行为 public void operate(); }
具体策略对象:
/** * 具体实现 */ public class BlackEnemy implements IStrategy { @Override public void operate() { System.out.println("今天下雨,打出租车回家吧!"); } }
环境对象:
/** *提供一个装不同策略的环境 */ public class Context { private IStrategy strategy; //构造函数,要你使用哪个妙计 public Context(IStrategy strategy){ this.strategy = strategy; } public void operate(){ this.strategy.operate(); } }
TEST:
public class Test{
public static void main(String[] args){
Context context;
//今天下雨啦!!!
context = new Context(new BlackEnemy());
context.operate();
}
}
相关推荐
代码为博客的例子,详细讲解参考:http://blog.csdn.net/lmj623565791/article/details/24116745 有问题请留言
专题资料(2021-2022年)java设计模式策略模式的实现.doc
设计模式之装饰模式Java实现和UML类设计图
Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...
55-Java设计模式之策略模式与状态模式1
Java设计模式策略模式Demo
JAVA设计模式例程-策略模式,在项目中除工厂模式外就数策略模式用得最多了。源程序,可以研究下。不过没有反射,策略模式结合反射的话,基本上就是一个插件架构。可扩展性超强。
2、爪哇语言抽象工厂创立性模式介绍 3、工厂方法创立性模式介绍 4、单态创立性模式介绍 5、单态创立性模式介绍 6、观察者模式介绍7、责任链模式 8、设计模式之Observer 9、设计模式之Strategy(策略) 10、设计模式之...
【Java设计模式】(2)策略模式Strategy
策略模式是对算法的包装,是吧使用算法的责任和算法本身分割开来,委派给不同的对象管理。 策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。 一句话来形容:准备一组算法,并将...
创建模式: 设计模式之Factory 设计模式之Prototype(原型) 设计模式之Builder 设计模式之Singleton(单态) ...设计模式之Strategy(策略) 设计模式之Mediator(中介者) 设计模式之Interpreter(解释器) 设计模式之Visitor
设计模式主要分为三大类: 1.创建型模式:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式。 2.结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 4.行为型模式:...
java 设计模式 策略模式 这是一个不错的例子,一看就会了
java常用设计模式-策略模式
Java设计模式,策略模式的Demo,具体的思想与实现有很多讲得很好的老师,我是看厉风行老师的视频学的,讲得不错,简单易懂
目录: 前 言 第一部分 大旗不挥,谁敢冲锋——热身篇 第1章 单一职责原则 1.1 我是“牛”类,我可以担任多职吗 1.2 绝杀技,打破你的传统思维 1.3 我单纯,所以我快乐 1.4 最佳实践 ...附录:23个设计模式
java设计模式之策略模式实现源码
设计模式--策略模式java例子
Java设计模式之策略模式的详细描述