设计模式回顾系列文章: 主要针对工作中常用常见的设计模式进行整理、总结,同时分享以供大家拍砖。
------------------------------------------------
策略模式:
根据所处的上下文,使用不同的业务规则或算法。
将算法的选择和算法的实现相分离。允许根据上下文进行选择。
让使用算法的类(Context)包含一个抽象类(Strategy),该抽象类有一个抽象方法指定如何调用算法。每个派生类按需要实现算法。
程序实现:
1、算法接口:
public interface Strategy {
public void algorithm();
}
2、算法实现1:
public class FirstStrategy implements Strategy {
public void algorithm() {
System.out.println("THE FIRST STRATEGY!!!");
}
}
3、算法实现2:
public class SecondStrategy implements Strategy{
public void algorithm() {
System.out.println("THE SECOND STRATEGY!!!");
}
}
4、使用算法的类:
public class Context {//策略使用类
private Strategy strategy;
public void setStrategy(Strategy str){//设置策略
this.strategy=str;
}
public void doStrategyWork(){//使用策略
strategy.algorithm();
}
}
5、程序入口:
public static void main(String[] args){
Context c=new Context();//策略使用类
Strategy a1=new FirstStrategy();//实例化策略1
c.setStrategy(a1);//设置策略1
c.doStrategyWork();//让策略1工作
Strategy a2=new SecondStrategy();//实例化策略2
c.setStrategy(a2);//设置策略2
c.doStrategyWork();//让策略2工作
c.setStrategy(a1);
c.doStrategyWork();
}
举例:不同的业务场景使用不同的业务规则(如计费、价格等)。
分享到:
相关推荐
《设计模式:可复用面向对象软件的基础》是一本由Erich Gamma、Richard Helm等四位国际知名的软件工程师共同编写的经典之作,该书提供了面向对象软件设计中常用的模式,并通过具体的案例解释了这些模式如何帮助解决...
在第25讲中,他集中对整个系列进行了一次全面的总结,让我们一起来回顾和探讨这些设计模式的核心要点。 设计模式是经过实践验证的、在特定场景下解决常见问题的最佳解决方案。它们是面向对象设计的智慧结晶,通过...
在本章节中,作者可能会回顾面向对象编程的基本概念,如封装、继承、多态等,并为后面介绍的设计模式奠定理论基础。 ### 2. 设计模式举例 这部分内容将通过具体的例子来介绍设计模式的应用场景,帮助读者理解不同...
策略模式(Strategy Pattern)是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需求的变化,特别是在涉及行为或者算法的时候。策略模式提供了一种方式来封装一系列相关的算法,并使...
行为型模式则关注对象间的交互和责任分配,比如策略模式(Strategy)、观察者模式(Observer)和命令模式(Command),它们有助于实现更灵活的行为控制和事件驱动。 "设计模式迷你手册.chm"文件可能包含了以下主要...
7. **总结与展望**:回顾策略模式的关键点,探讨其与其他设计模式的结合使用,以及在面向对象设计中的重要地位。 这个视频资料对于学习和理解Java中的设计模式,尤其是策略模式,将是一个很好的资源。通过观看和...
各种工厂模式 242 第21章 Singleton模式和Double-Checked Locking模式 249 第22章 Object Pool模式 257 第23章 Factory Method模式 267 第24章 工厂模式的总结 272 第八部分 终点与起点 第25章 设计模式回顾:总结与...
- 第9章的策略模式(Strategy Pattern)允许在运行时动态选择算法或策略。 - 第10章的桥接模式(Bridge Pattern)分离抽象接口和其实现,使得两者可以独立变化。 - 第11章的抽象工厂模式(Abstract Factory Pattern...
首先,设计模式课件回顾了面向对象编程(Object-Oriented Programming,OOP)的基本原则,如封装、继承和多态,这些是设计模式依赖的基础。 接下来,课程深入讨论了GoF的设计模式。这些模式可以分为三类: 1. 创建...
行为型模式则关注对象间的行为分配,例如观察者模式(Observer)、策略模式(Strategy)和责任链模式(Chain of Responsibility)。 在C++和C#中,设计模式的应用广泛且深入。C++作为静态类型的强类型语言,其模板...
策略模式是一个行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以互换。 - **结构**:包含策略接口、具体策略类以及环境类。 - **示例性源代码**:例如,选择不同的排序算法。 - **使用条件**...
策略模式( Strategy ) 模板方法模式( Template Method ) 观察者模式( Observer ) 迭代子模式( Iterator ) 责任链模式( Chain of Responsibility ) 命令模式( Command ) 备忘录模式( Memento ) 状态...
在完成所有设计模式的解析后,作者回顾了整个学习过程中的心路历程,包括初读GoF原著时的困惑、实现过程中遇到的问题以及最终领悟设计模式精髓时的喜悦。这一过程不仅仅是技术上的成长,更是一种思维方式的转变。 #...
#### 九、泛化策略模式(Strategy) 泛化策略模式是一种允许在运行时选择算法的模式。 - **8.1 泛化策略模式简述** - **8.1.1 定义**:泛化策略模式是一种将算法封装在单独的对象中以便于替换的模式。 - **8.1.2...
这个名为"高级软件工程之设计模式.ppt"的文档显然涵盖了设计模式这一主题,它通过实例帮助我们理解设计模式的重要性及其应用。文档中提到了一个关于长方形和正方形的案例,这是对设计模式中的“开闭原则”(Open-...
在最后一章中,作者们回顾了设计模式的发展历程,展望了未来可能的发展方向,并鼓励更多的软件工程师参与到模式社区中来。此外,书中还提供了一些基础类的定义和相关术语的解释,为读者提供了更全面的学习资源。 ...
我们可以看到多种设计模式的应用,如单例模式(Singleton)用于确保游戏全局只有一个实例,工厂模式(Factory)用于创建不同类型的坦克或炮弹,观察者模式(Observer)用于实现游戏事件的发布和订阅,还有策略模式...
14. 策略模式(Strategy Pattern):定义了一系列算法,并将每个算法封装起来,使它们可以互相替换。策略模式让算法的变化独立于使用算法的客户。在Java中,策略模式可以用于替代复杂的条件分支语句。 15. 模板方法...