`

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

    策略模式是一种设计模式,它允许程序在运行时选择不同的算法或行为,而不是在编译时就固定下来。这种模式的核心思想是将算法封装在独立的策略类中,使得算法的变化不会影响到使用算法的客户端代码。通过这种方式,...

    11. 策略模式1

    策略模式是一种设计模式,它使你能在运行时改变对象的行为,通过将算法封装在独立的策略类中,使得相同的算法可以有不同的实现。这种模式的主要目的是将决策逻辑与核心业务逻辑解耦,使得算法的选择和使用更加灵活。...

    设计模式-策略者模式例子

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在策略模式中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为模式。 在策略模式中,我们创建表示各种策略的对象和一个行为根据...

    策略模式.doc之java 设计模式

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式通过定义一个策略接口和一系列实现这个接口的具体策略类,使得系统可以在运行时选择并应用不同的策略。这种模式的主要优点是提高了...

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

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

    策略模式 Strategy Pattern

    ### 策略模式 Strategy Pattern #### 概述 策略模式是一种行为设计模式,它使得算法可以在运行时被更改。这种模式允许一个类的行为或其算法在运行时根据需要进行改变,通过这种方式,我们可以轻松地扩展不同的算法...

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

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

    策略模式(headfirst note)

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Headfirst Note中,策略模式被用来处理不同类型的鸭子(Duck)的行为。这个压缩包包含了一个名为"Duck1.jude"的文件,这可能是一个用某种特定格式...

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

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

    设计模式实验报告.rar

    1. **策略模式**:策略模式允许在运行时动态选择算法或策略。它将算法封装到独立的类中,使得算法之间的替换变得容易。在报告中,可能会展示如何通过接口定义策略接口,以及如何创建不同的实现策略的类,以便根据...

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

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

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

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

    设计模式课件大全

    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 适配器模式的应用 ...

    win10添加打印机出现“受到组策略阻止”解决办法.docx

    - 计算机配置>策略>管理模板>打印机>不允许安装使用内核模式驱动程序的打印机 5. **更新组策略设置**: - 完成上述步骤后,无论是域控制器还是客户端计算机,都需要运行命令`gpupdate /force`来强制更新组策略...

    Java设计模式 设计模式介绍

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

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

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

Global site tag (gtag.js) - Google Analytics