`
zyq070
  • 浏览: 21982 次
  • 性别: 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两种模式的特点及...

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

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

    详解设计模式

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

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

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

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

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

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

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

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

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

    设计模式学习.zip

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

    java与模式光盘源码

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

    商业模式新生代个人篇

    无论是在职业生涯的起步阶段,还是在追求更高成就的过程中,《商业模式新生代个人篇》都为产品经理们提供了丰富的见解和策略。它不仅为新手提供了构建成功商业模式的基石,也为经验丰富的专业人士提供了新的视角和...

    设计模式之蝉

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

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

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

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

    策略模式则允许在运行时动态选择不同的算法,适用于多种算法可选的场景,使得程序更加灵活。 模拟试题不仅检验读者对这些设计模式理论知识的掌握程度,还评估读者是否能够将所学知识应用到解决实际问题中。例如,...

    刘伟设计模式和例子

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

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

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

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

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

    教学模式与策略的选择和设计.pptx

    例如,若目标是强化知识掌握,则选择的模式应倾向于教师主导的替代性策略,通过精心设计的教学流程帮助学生快速理解。相反,若目标是培养学生的自主学习能力和创新思维,则宜采用生成性策略,鼓励学生自主探索和学习...

Global site tag (gtag.js) - Google Analytics