`
wu_quanyin
  • 浏览: 208164 次
  • 性别: Icon_minigender_1
  • 来自: 福建省
社区版块
存档分类
最新评论

策略模式(Strategy)---算法

阅读更多

 

一,策略模式主要对其算法的包装,将每一个算法封装到具有共同接口的独立的类当中,使他们可以相互替换

 

策略模式运用非常广泛,在这里以(加,减,乘,除)算法为例,

 

接口:

 

package com.wqy.strategy;

public interface Oper {

	public abstract double Oper(float f1,float f2);
}

 减法操作

 

public class Substract extends Oper {

	public double Oper(float f1,float f2) {
		
		return (f1-f2);
	}
}

 除法操作

 

package com.wqy.strategy;

public class Division extends Oper {

	public double Oper(float f1, float f2) {
		return (f1/f2);
	}
}

 以下的加法与减法不一一列举...

 

 

封装类

 

package com.wqy.strategy;

public class Wrapper {

	public Oper oper;
	public Wrapper() {
	}
	public Wrapper(Oper oper) {
		this.oper = oper;
	}
	public double oper(float f1, float f2) {

		return oper.Oper(f1, f2);
	}
}

 测试类.

 

 

package com.wqy.strategy;

public class Client {

	public static void main(String[] args) {
		Wrapper wrapper1=new Wrapper(new Substract());
		System.out.println(wrapper1.oper(30,40));
		
		Wrapper wrapper2=new Wrapper(new Division());
		System.out.println(wrapper2.oper(30,40));
	}
}
 

以上是简单的算法封装,可以根据传入的对象不一样,而表现出不一样的行为,,在外加以封装之后,可以使该类算法运用非常灵活

 

 

使用:

 

 

 

  • 大小: 35.2 KB
0
0
分享到:
评论

相关推荐

    设计模式专题之(十六)策略模式---设计模式策略模式示例代码(python--c++)

    策略模式提供了一种将算法族封装到各自独立的类中,并在运行时选择合适的算法来执行的方式。 策略模式的核心结构包含三部分:Context(上下文)、Strategy(策略)接口或抽象类以及ConcreteStrategy(具体策略)类...

    微信小程序--使用策略模式进行表单验证strategy-master.zip

    本项目"微信小程序--使用策略模式进行表单验证strategy-master.zip"聚焦于如何通过策略模式来优化这一过程。策略模式是一种行为设计模式,允许我们在运行时选择算法或策略,使得代码更加灵活且易于扩展。 首先,...

    sprintboot-strategy-pattern-demo-master.zip

    【标题】"sprintboot-strategy-pattern-demo-master.zip" 是一个使用Spring Boot技术实现的策略模式示例项目,它提供了一种快速理解并应用策略模式的开箱即用的体验。 【描述】"基于springboot做了一个策略模式的...

    strategy-demo.zip

    在软件工程中,当一个系统需要在不同时间执行不同的算法,或者当系统需要通过算法的变化来改变对象的行为时,策略模式就显得非常有用。这个"strategy-demo.zip"文件很可能是包含了一个策略模式的示例代码或教程。 ...

    设计模式-策略模式-c++版

    在C++中,策略模式主要用于封装一系列算法,并让它们之间可以互相替换,使得算法的变化独立于使用算法的客户。这种模式通常涉及三个主要角色:策略接口、具体策略类以及上下文。 策略接口定义了一族相关或相互排斥...

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

    策略模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。策略对象改变了一个类的行为,策略类定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 ### ...

    策略模式 Strategy Pattern

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

    01-strategy-pattern

    策略模式提供了一种将算法封装到独立的对象中,使得它们可以互换使用的机制,从而避免了使用条件语句或硬编码来切换行为。 首先,策略模式的核心组成部分包括上下文(Context)、策略(Strategy)和具体策略 Concrete ...

    策略(strategy)模式

    策略模式可以定义一系列的算法,并将每一个算法封装起来,让它们之间可以互相替换,让算法的变化独立于使用算法的客户。 策略模式的主要优点在于: 1. **灵活性**:当需要改变一种行为或算法时,我们无需修改原有...

    走进设计模式之 策略模式(Strategy)

    策略模式允许我们将这些算法封装成独立的类,每个类代表一种策略,然后在运行时动态选择要执行的策略。 策略模式的核心组成部分包括: 1. **策略接口(Strategy)**:定义了所有支持的算法或行为的公共接口。例如...

    设计模式C++学习之策略模式(Strategy)

    在C++中,策略模式通常通过定义一系列算法类并让它们之间可以互换来实现。这些算法类都实现了一个公共接口,使得它们可以被相同的客户端代码调用,而客户端无需知道具体使用的是哪个算法。这种设计模式鼓励了代码...

    Java 设计模式-策略模式(Strategy)Android讲解

    首先,策略模式由三个主要组成部分构成:上下文(Context)、策略(Strategy)接口和具体策略(Concrete Strategy)。上下文是使用策略的对象,它维护一个对策略的引用,并调用策略的接口来执行算法。策略接口定义了一组...

    设计模式-策略模式(Strategy)

    通过将算法封装到具有共同接口的独立对象中,策略模式使得你可以根据需要灵活地切换算法,或者在运行时添加新的算法。 在策略模式中,主要有三个关键角色: 1. **策略(Strategy)接口**:定义了所有支持的算法的...

    strategy-pattern-in-unity

    通过策略模式,我们可以将算法族封装在独立的类中,使得它们可以互相替换,从而提高代码的灵活性和可维护性。 在Unity中,策略模式通常用于游戏逻辑、AI行为控制或者动画控制等场景。例如,我们可以为游戏角色定义...

    【Java设计模式】(2)策略模式Strategy

    策略模式(Strategy)是软件设计模式中的一种行为模式,它使你能在运行时改变对象的行为。在Java中,策略模式通常涉及定义一系列算法,并将每个算法封装起来,使得它们可以相互替换,同时使得算法的变化独立于使用它...

    设计模式--策略模式StrategyPattern

    策略模式提供了一种将算法族封装到各自独立的类中,并在运行时选择具体算法的机制,从而避免了硬编码if...else或switch语句。 在策略模式中,策略类定义了一系列的算法,并让它们之间互相替换。这些策略类封装了...

    Strategy-design-pattern-_-model.rar_strategy

    在"Design Pattern - Strategy Design Pattern _ Model"这个主题中,可能包含了对策略模式的深入讲解和实例应用。文件"T23_设计模式_策略模式.ppt"可能是一个演示文稿,详细介绍了策略模式的原理、结构、优缺点以及...

    人人都会设计模式---策略模式--Strategy

    【策略模式】是一种设计模式,它的核心思想是将不同的算法或行为封装成独立的类,这些类具有统一的接口,从而使客户端可以灵活地选择并使用其中的任何一种算法,而无需关心具体实现的细节。这种模式可以有效地避免...

    php设计模式-策略模式-例题学习

    在实际应用中,策略模式常用于需要多种算法或行为,并且需要在运行时根据条件或需求进行切换的场景。例如,在游戏中,玩家可能会有多种策略来决定何时出牌;在推荐系统中,可以根据用户的行为动态选择不同的推荐算法...

    各种排序算法的策略模式实现

    ### 各种排序算法的策略模式实现 #### 引言 在现代软件开发过程中,算法的设计与优化一直是提升系统性能的关键。随着业务需求的变化和技术的进步,开发者不仅要关注算法的功能实现,还需要考虑其效率、可维护性和...

Global site tag (gtag.js) - Google Analytics