策略模式把要使用算法的‘客户’,跟具体的‘算法’ 分离开来,这种分离通关了中间的一个接口(或抽象类)
来实现。一般情况下,会配合简单工厂模式使用,简单工厂模式负责生产不同的对象实例,而策略模式则负
责实现不同的对象对应的实现算法。
举例如下:
假如小明有自行车、摩托、电动车三种交通工具,三种交通工具发动靠不同的算法实现
自行车双脚一蹬,摩托依靠汽油为动力,电动车依靠充电电池。这三种交通工具都用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中的实现。 首先,让我们来看看核心的类和接口: 1. `HandStrategyInterface.php`: 这个文件定义了一个接口`...
同时,由于策略模式的引入,使得系统的结构更加清晰,易于理解和扩展,符合软件工程的开闭原则,即对扩展开放,对修改关闭。 总结,基于策略模式的Java开发商场结算系统充分利用了设计模式的优势,结合C/S架构,为...
《Java设计模式及其个人理解》 设计模式是软件开发中的一种通用解决方案,是对在特定上下文中反复出现的问题的模板化解答。它体现了优秀的编程实践,旨在提高代码的可重用性,降低开发成本,增强代码的可维护性和可...
本文档是作者在进行DSLAM(Digital Subscriber Line Access Multiplexer,数字用户线路接入复用器)项目过程中对端口模式的理解和个人总结,主要涉及的知识点包括端口模式的基础概念、Access和Trunk两种模式的特点及...
《项目百态:深入理解软件项目行为模式》是第19届Jolt大奖的获奖作品,这本著作在IT行业中具有极高的价值,因为它深入探讨了软件开发项目的各种动态和模式,帮助项目经理、团队成员以及相关从业者更好地理解和应对...
在本文中,我们将深入探讨两个关键的设计模式:策略模式和装饰者模式,并结合生活中的实例来帮助理解它们。 首先,让我们来了解策略模式。策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在日常生活...
其次,该模式的应用体现在实证研究上,通过研究个人计算机产业、主板产业以及以宏碁计算机公司为例的个案分析,验证策略分析模式的可行性和有效性。这种分析不仅有助于确认特定产业的关键成功因素,还帮助企业进行...
行为型模式则关注对象之间的交互和职责分配,例如策略模式、观察者模式、责任链模式等。 GOF设计模式包括23种经典模式,每一种都有其特定的应用场景和解决的问题。例如,单例模式确保一个类只有一个实例并提供全局...
行为型模式则关注对象间如何交互和分配职责,例如观察者模式(Observer)、策略模式(Strategy)和责任链模式(Chain of Responsibility)。这些模式强调算法和行为的封装,使得代码更灵活,易于维护和扩展。 在C++...
3. 行为型模式:如策略模式、模板方法模式、观察者模式、命令模式、迭代器模式、责任链模式、备忘录模式、状态模式、解释器模式和访问者模式。这些模式主要处理对象之间的通信和行为,让代码更易于理解和扩展。 在...
3. 行为型模式:关注对象之间的责任分配,包括责任链模式、命令模式、解释器模式、迭代器模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。例如,策略模式定义了一系列算法,并将每个...
而策略模式则常用于算法的封装和选择,允许在运行时动态切换不同的算法策略。 总的来说,《Java与模式》光盘源码提供的实例代码是对理论知识的实践补充,读者可以通过阅读和运行这些代码,加深对设计模式的理解,并...
无论是在职业生涯的起步阶段,还是在追求更高成就的过程中,《商业模式新生代个人篇》都为产品经理们提供了丰富的见解和策略。它不仅为新手提供了构建成功商业模式的基石,也为经验丰富的专业人士提供了新的视角和...
书中包含了作者的个人读书笔记,这表明除了正文内容之外,作者还提供了自己的理解与见解,这些笔记可能对理解设计模式的精髓与实际应用有很大的帮助。 在内容部分,我们可以看到有关于设计模式的一些具体讨论,例如...
对于C++开发者来说,理解和掌握设计模式不仅可以提升个人技能,也有助于团队协作,因为设计模式提供了一种共同的语言和理解,使得开发者能够更容易地理解彼此的代码。通过阅读《设计模式可复用面向对象软件的基础...
策略模式则允许在运行时动态选择不同的算法,适用于多种算法可选的场景,使得程序更加灵活。 模拟试题不仅检验读者对这些设计模式理论知识的掌握程度,还评估读者是否能够将所学知识应用到解决实际问题中。例如,...
3. 行为型模式:包括策略模式、模板方法模式、观察者模式、迭代器模式、命令模式、责任链模式、备忘录模式、状态模式、访问者模式和解释器模式。行为型模式主要处理对象之间的交互和职责分配,使代码更具灵活性和可...
包括策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、迭代器模式(Iterator)、访问者模式(Visitor)、责任链模式(Chain of Responsibility)、命令模式(Command)、备忘录模式...
行为型模式则关注对象间的交互和责任分配,例如策略模式(Strategy)、观察者模式(Observer)和责任链模式(Chain of Responsibility)。 JAVA设计模式是Java开发中的核心部分,因为Java语言的特性使得许多设计...
例如,若目标是强化知识掌握,则选择的模式应倾向于教师主导的替代性策略,通过精心设计的教学流程帮助学生快速理解。相反,若目标是培养学生的自主学习能力和创新思维,则宜采用生成性策略,鼓励学生自主探索和学习...