`
zyq070
  • 浏览: 21802 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

策略模式个人理解

 
阅读更多
策略模式把要使用算法的‘客户’,跟具体的‘算法’ 分离开来,这种分离通关了中间的一个接口(或抽象类)
来实现。一般情况下,会配合简单工厂模式使用,简单工厂模式负责生产不同的对象实例,而策略模式则负
责实现不同的对象对应的实现算法。
举例如下:
 
  假如小明有自行车、摩托、电动车三种交通工具,三种交通工具发动靠不同的算法实现

 自行车双脚一蹬,摩托依靠汽油为动力,电动车依靠充电电池。这三种交通工具都用startMove方法,
 我们 把其定义为

  public interface RunTools{
   public void startMove();
}

自行车、摩托、电动车分别对应实现了RunAction接口

public class Bicycle implements RunTools{

   public void startMove(){
    //自行车实现
  };
}
public class Moto implements RunTools{
   public void startMove(){
    //摩托实现
  };
}

public class EBicycle implements RunTools{
   public void startMove(){
    //电动车实现
  };
}

下面建立生成RunTools实例的工厂类

public class RunToolsFactory{

  public static RunTools createTools(String type){
  
 if(type.equals("Bicycle")){
   return new Bicycle();
}
 if(type.equals("Moto")){
   return new Moto();
}

 if(type.equals("EBicycle")){
   return new EBicycle();
}
}
}

下面创建客户类
public class Client{

  public void travel(String tools){
   RunTools tools = RunToolsFactory.createTools(tools);
  tools.startMove();
}
}
分享到:
评论

相关推荐

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

    在这个"php设计模式-策略模式-例题学习"的例子中,我们将深入理解策略模式的运用及其在PHP中的实现。 首先,让我们来看看核心的类和接口: 1. `HandStrategyInterface.php`: 这个文件定义了一个接口`...

    基于策略模式存java开发的商场结算系统

    同时,由于策略模式的引入,使得系统的结构更加清晰,易于理解和扩展,符合软件工程的开闭原则,即对扩展开放,对修改关闭。 总结,基于策略模式的Java开发商场结算系统充分利用了设计模式的优势,结合C/S架构,为...

    Java设计模式,并加上个人理解

    《Java设计模式及其个人理解》 设计模式是软件开发中的一种通用解决方案,是对在特定上下文中反复出现的问题的模板化解答。它体现了优秀的编程实践,旨在提高代码的可重用性,降低开发成本,增强代码的可维护性和可...

    端口模式的理解的个人总结

    本文档是作者在进行DSLAM(Digital Subscriber Line Access Multiplexer,数字用户线路接入复用器)项目过程中对端口模式的理解和个人总结,主要涉及的知识点包括端口模式的基础概念、Access和Trunk两种模式的特点及...

    详解设计模式

    在本文中,我们将深入探讨两个关键的设计模式:策略模式和装饰者模式,并结合生活中的实例来帮助理解它们。 首先,让我们来了解策略模式。策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在日常生活...

    发展策略分析模式的目的.doc

    其次,该模式的应用体现在实证研究上,通过研究个人计算机产业、主板产业以及以宏碁计算机公司为例的个案分析,验证策略分析模式的可行性和有效性。这种分析不仅有助于确认特定产业的关键成功因素,还帮助企业进行...

    《Java设计模式》刘伟 课后习题及模拟试题答案.rar

    而策略模式则允许在运行时选择算法或策略,增强了程序的灵活性。 通过刘伟老师的《Java设计模式》课后习题和模拟试题,读者可以系统地复习和检验自己的学习效果,进一步掌握设计模式的核心思想和实战技巧。在解答...

    GOF设计模式中英文+设计模式精解中英文

    行为型模式则关注对象之间的交互和职责分配,例如策略模式、观察者模式、责任链模式等。 GOF设计模式包括23种经典模式,每一种都有其特定的应用场景和解决的问题。例如,单例模式确保一个类只有一个实例并提供全局...

    c++设计模式中文 个人整理

    行为型模式则关注对象间如何交互和分配职责,例如观察者模式(Observer)、策略模式(Strategy)和责任链模式(Chain of Responsibility)。这些模式强调算法和行为的封装,使得代码更灵活,易于维护和扩展。 在C++...

    设计模式之美——教你写出高质量代码

    3. 行为型模式:如策略模式、模板方法模式、观察者模式、命令模式、迭代器模式、责任链模式、备忘录模式、状态模式、解释器模式和访问者模式。这些模式主要处理对象之间的通信和行为,让代码更易于理解和扩展。 在...

    设计模式学习.zip

    3. 行为型模式:关注对象之间的责任分配,包括责任链模式、命令模式、解释器模式、迭代器模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。例如,策略模式定义了一系列算法,并将每个...

    项目百态_深入理解软件项目行为模式

    《项目百态:深入理解软件项目行为模式》是第19届Jolt大奖的获奖作品,这本著作在IT行业中具有极高的价值,因为它深入探讨了软件开发项目的各种动态和模式,帮助项目经理、团队成员以及相关从业者更好地理解和应对...

    java与模式光盘源码

    而策略模式则常用于算法的封装和选择,允许在运行时动态切换不同的算法策略。 总的来说,《Java与模式》光盘源码提供的实例代码是对理论知识的实践补充,读者可以通过阅读和运行这些代码,加深对设计模式的理解,并...

    设计模式之蝉

    书中包含了作者的个人读书笔记,这表明除了正文内容之外,作者还提供了自己的理解与见解,这些笔记可能对理解设计模式的精髓与实际应用有很大的帮助。 在内容部分,我们可以看到有关于设计模式的一些具体讨论,例如...

    商业模式新生代个人篇

    《商业模式新生代个人篇》是产品经理领域的一部重要著作,它深入浅出地阐述了现代商业环境下创新商业模式的重要性和实施策略。这本书对于那些希望在产品领域有所建树的专业人士来说,是一本不可多得的指南。 商业...

    设计模式可复用面向对象软件的基础(C++)——强烈推荐

    对于C++开发者来说,理解和掌握设计模式不仅可以提升个人技能,也有助于团队协作,因为设计模式提供了一种共同的语言和理解,使得开发者能够更容易地理解彼此的代码。通过阅读《设计模式可复用面向对象软件的基础...

    刘伟设计模式和例子

    3. 行为型模式:包括策略模式、模板方法模式、观察者模式、迭代器模式、命令模式、责任链模式、备忘录模式、状态模式、访问者模式和解释器模式。行为型模式主要处理对象之间的交互和职责分配,使代码更具灵活性和可...

    JAVA 23种设计模式(全).Design Pattern_Java模式

    包括策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、迭代器模式(Iterator)、访问者模式(Visitor)、责任链模式(Chain of Responsibility)、命令模式(Command)、备忘录模式...

    非常有用的设计模式小合集

    行为型模式则关注对象间的交互和责任分配,例如策略模式(Strategy)、观察者模式(Observer)和责任链模式(Chain of Responsibility)。 JAVA设计模式是Java开发中的核心部分,因为Java语言的特性使得许多设计...

    headfirst设计模式C++代码实现

    设计模式分为三大类:创建型模式(如单例模式、工厂模式、抽象工厂模式)、结构型模式(如适配器模式、装饰器模式、代理模式)和行为型模式(如策略模式、观察者模式、责任链模式)。 在C++中,设计模式的应用有助...

Global site tag (gtag.js) - Google Analytics