`

10、策略模式

 
阅读更多

 策略模式

1、定义

策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

 

2、结构图

 

3、代码

(1)策略接口

public interface IStrategy {

	public int calculate(int a, int b);
	
}

(2)加法算法实现IStrategy

 

public class AddStrategy implements IStrategy {

	@Override
	public int calculate(int a, int b) {
		return a + b;
	}

}

 (3)减法算法实现IStrategy

public class SubStrategy implements IStrategy {

	@Override
	public int calculate(int a, int b) {
		return a - b;
	}

}

 (4)Context

public class Context {

	private IStrategy strategy;

	public int calculate(int a, int b){
		return strategy.calculate(a, b);
	}
	
	public void setStrategy(IStrategy strategy) {
		this.strategy = strategy;
	}
	
	
	
}

 (5)客户端调用

public class Client {
	
	public static void main(String[] args) {
		
		Context context = new Context();
		
		IStrategy addStrategy = new AddStrategy();
		context.setStrategy(addStrategy);
		System.out.println(context.calculate(4, 2));;
		
		IStrategy subStrategy = new SubStrategy();
		context.setStrategy(subStrategy);
		System.out.println(context.calculate(4, 2));;
	}

}

 

4、总结

策略模式的好处在于你可以动态的改变对象的行为。

  • 大小: 6.1 KB
分享到:
评论

相关推荐

    10.设计模式-策略模式1

    1.当你有很多类似的类,但它们执行某些行为的方式不同时,请使用此 2.使用该模式将类的业务逻辑与算法的实现细节隔离开来,这些算法在 3.当你的类具有大量的条件运

    详解Python设计模式之策略模式

    策略模式:定义一系列算法,把它们一一封装起来,并且使它们之间可以相互替换。此模式让算法的变化不会影响到使用算法的客户。 电商领域有个使用“策略”模式的经典案例,即根据客户的属性或订单中的商品计算折扣。 ...

    C++设计模式之策略模式

    在GOF的《设计模式:可复用面向对象软件的基础》一书中对策略模式是这样说的:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。该模式使得算法可独立于使用它的客户而变化。 策略模式为了适应不同的...

    设计模式课程每章ppt(共27章).zip

    ├── 第25章_策略模式.ppt ├── 第26章_模板方法模式.ppt ├── 第27章_访问者模式.ppt ├── 第2章_面向对象设计原则.ppt ├── 第3章_设计模式概述.ppt ├── 第4章_简单工厂模式.ppt ├── 第5章_工厂...

    Java 经典设计模式讲解以及项目实战

    3 策略模式 4 模板方法模式 5 工厂方法模式 6 抽象工厂模式 7 建造者模式 8 代理模式 9 装饰模式 10 原型模式 11 委派模式 12 适配器模式 设计模式综合运用 1 门面+模版方法+责任链+策略 2 门面+模版方法+责任链+...

    minio使用,poi解析,uid生成工具,策略工厂模式,模板管理完整功能,swagger集成,跨域,异常处理,分页等可用源代码

    5、策略工厂模式:用于不同业务逻辑的实现。 6、uid生成工具。 7、集成swagger在线接口文档。 8、文件上传功能。 9、excel文件解析功能:poi实现。 10、minio分布式存储:API封装并提供统一的请求接口。包括minio...

    精品源码 C# 27种设计模式源代码

    3 策略模式 3 工厂方法模式 3 组合模式 4 抽象工厂模式 4 代理模式 4 命令模式 5 迭代器模式 5 适配器模式 5 原型模式 6 简单工厂模式 6 解释器模式 6 享元模式 7 桥接模式 7 状态模式 8 结构型模式总结 8 责任链...

    设计模式课件大全

    PPT内容包括:内附代码,实例,方便理解。 继承、封装、多态、UML 设计模式02 设计模式03-创建型模式 ...设计模式16-策略模式、模板方法、访问者 此PPT实例便于理解,对于深入理解OO思想有很大帮助。

    lua设计模式总结

    1、策略模式lua实现 2、模板方法模式lua实现 3、观察者模式lua实现 4、状态模式lua实现 5、迭代器模式lua实现 6、备忘录模式lua实现 7、命令模式lua实现 8、职责链模式lua实现 9、解释器模式lua实现 10、中介者模式...

    java设计模式

    18.3.4 策略模式的注意事项 18.4 策略模式的扩展 18.5 最佳实践 第19章 适配器模式 19.1 业务发展—上帝才能控制 19.2 适配器模式的定义 19.3 适配器模式的应用 19.3.1 适配器模式的优点 19.3.2 适配器模式的应用 ...

    Java设计模式 设计模式介绍

    2、爪哇语言抽象工厂创立性模式介绍 3、工厂方法创立性模式介绍 4、单态创立性模式介绍 5、单态创立性模式介绍 6、观察者模式介绍7、责任链模式 8、设计模式之Observer 9、设计模式之Strategy(策略) 10、设计模式之...

    Java面试 java设计模式整理 单例、工厂、策略等 面试使用,学习使用

    13、策略模式(strategy) 12 14、模板方法模式(Template Method) 13 15、观察者模式(Observer) 14 16、迭代子模式(Iterator) 16 17、责任链模式(Chain of Responsibility) 18 18、命令模式(Command) 19 ...

    C#设计模式_设计模式_C#_

    创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) 3. 建造者模式(Builder) 4.... 策略模式(Strategy Pattern) 22. 访问者模式(Visitor Pattern) 23. 状态模式(State Pattern)

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    1、策略模式STRATEGY PATTERN 2、代理模式PROXY PATTERN 3、单例模式SINGLETON PATTERN 4、多例模式MULTITION PATTERN 5、工厂方法模式FACTORY METHOD PATTERN 6、抽象工厂模式ABSTRACT FACTORY PATTERN 7、门面模式...

    C#设计模式(23种设计模式)

    创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) ... 策略模式(Strategy Pattern) 22. 访问者模式(Visitor Pattern) 23. 状态模式(State Pattern) @Author kwming

    设计模式_源代码大全.zip

    策略模式 3.装饰模式 4.代理模式 5.工厂方法模式 6.原型模式 7.模板方法模型 8.外观模式 9.建造者模式 10.观察者模式 11.抽象工厂模式 12.状态模式 13.适配器模式 14.备忘录模式 15.组合模式 16.迭代器模式 17.单例...

    设计模式PPT.rar

    01第一讲简单工厂模式 02第二讲工厂方法模式 03第三讲抽象工厂模式 04第四讲工厂模式在开发中的运用 05第五讲单例模式 06第六讲原型模式 07第七讲建造者模式 08第八讲装饰模式 09第九讲策略模式 10第十讲观察者模式 ...

    Java23种设计模式

    目录 1. 设计模式 3 1.1 创建型模式 4 1.1.1 工厂方法 4 1.1.2 抽象工厂 6 1.1.3 建造者模式 10 1.1.4 单态模式 13 1.1.5 原型模式 15 ...1.3.9 策略模式 61 1.3.10 模板方法 63 1.3.11 访问者模式 65

    深入浅出java设计模式(高清中文PDF)

    文件类型为PDF文件,此文档对20多种java设计模式进行了详细讲解,在中文讲解的过程中...策略模式 20.状态模式 21.模板模式 22.访问者模式 最后,还附带一个关于“分派”的章节!为了读者对访问者模式有更好的理解。

Global site tag (gtag.js) - Google Analytics