`

设计模式的理解--策略模式

    博客分类:
  • OOD
 
阅读更多

策略模式: 定义了算法族,分别封装起来,让他们之间可以相互替换,让算法的变化独立于使用算法的客户。

 

 

个人理解:

   需要做一件事情,但事情的内容是不确定的,可能是事情A,可能是事件B,由某些条件决定

 
在程序中体现为:
public class Person {
public void doOneThing(事件类型){
if(事件类型 ==事情A){
//这样做
}else if(事件类型 ==事情B){
//这样这样做
}else {
//.......
}
 
}
}
 
缺点:Person 需要知道每一个事情如何去做,增加新的事情时,会修改代码增加 if else代码让Person知道如何去做,造成doOneThing 方法过大,不易于维护阅读。
 
解决方法:
  将这些可变的事情做法抽取出来,按其共性定义接口Thing,每种事情的做法封装为Thing接口的实现,利用多态的特性,Person只要获得Thing 调用Thing的方法就可以执行某个事了,而不是必须知道事件如何去做。
  当新增事情时,只需要新增Thing接口实现,Person类的结构无需变动。


 
 策略模式使用中需要解决策略的选择问题。
总结:策略模式本质是利用了对接口操作及多态的特性。
  • 大小: 54.5 KB
  • 大小: 22.5 KB
分享到:
评论

相关推荐

    设计模式精解-GoF-23种设计模式解析--附C++源代码

    C++源代码文件可以帮助你更好地理解如何在实际项目中应用这些模式,通过阅读和分析代码,你可以学习如何在C++中实现这些设计模式,并将它们融入到自己的编程实践中。 总而言之,设计模式是软件开发中的宝贵财富,...

    C++设计模式--基于Qt4开源跨平台开发框架

    通过学习《C++设计模式--基于Qt4开源跨平台开发框架》,开发者不仅可以掌握设计模式的本质和应用场景,还能深入理解Qt4框架的强大功能。结合两者,能够提高代码质量,降低维护成本,同时实现高效且可靠的跨平台应用...

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

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式通常...在压缩包文件"StrategyPatterns例子"中,你可以找到使用Java实现策略模式的示例代码,这将有助于进一步理解策略模式的运用。

    JAVA设计模式例程-策略模式

    总的来说,这个“JAVA设计模式例程-策略模式”提供了一个学习和实践策略模式的好例子,通过阅读和分析源代码,我们可以更好地理解如何在实际开发中应用这一模式,提升我们的编程技巧和设计能力。

    java设计模式---诙谐易懂版

    1. 策略模式(Strategy Pattern)是一种行为设计模式,允许在运行时选择算法的行为。策略模式的意图是定义一系列算法,将每个算法封装起来,并使它们可以互换。策略模式让算法的变化独立于使用算法的客户端。在提供...

    设计模式课件大全

    PPT内容包括:内附代码,实例,方便理解。 继承、封装、多态、UML 设计模式02 设计模式03-创建型模式 ...设计模式16-策略模式、模板方法、访问者 此PPT实例便于理解,对于深入理解OO思想有很大帮助。

    java设计模式--策略模式

    策略模式是Java设计模式中的一种行为模式,它允许在运行时选择算法或策略,从而提供了更大的灵活性。在HeadFirst的《设计模式》一书中,第一章深入浅出地讲解了这一模式,通过实例帮助读者理解其核心概念和应用场景...

    设计模式--策略模式StrategyPattern

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要根据不同的条件或场景...通过学习这些内容,你可以更深入地理解策略模式的原理和使用方法,提升在实际项目中的设计能力。

    设计模式精解-GoF 23种设计模式解析附C++实现源码.pdf

    本文旨在深入解析这些设计模式,并通过C++实现来帮助读者更好地理解和应用这些模式。 #### 1. 创建型模式 创建型模式关注的是对象的创建机制,它们使得系统能够独立于如何创建、组合这些对象。 - **1.1 Factory...

    设计模式精解-GoF23种设计模式解析附C++实现源码

    C++实现源码提供了具体编程环境下的应用实例,帮助读者更好地理解和应用这些设计模式。通过阅读和实践这些源码,开发者可以更深入地掌握如何在实际项目中灵活运用设计模式,提升代码质量和可维护性。

    设计模式精解-GoF 23种设计模式解析附C++实现源码 完整版

    通过阅读《设计模式精解》并参考其中的C++实现源码,开发者能够更好地理解和应用这些模式,以构建更高效、可维护和可扩展的软件系统。在实际开发中,结合使用多种设计模式可以创造出灵活、可复用且易于理解的代码。

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

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

    设计模式-策略者

    在《设计模式-策略者》这篇文章中,作者深入浅出地介绍了策略模式的基本概念、结构和实现方式。文章可能涵盖了以下几个关键知识点: 1. **模式定义**:策略模式允许在运行时选择不同的算法或策略,提供了一种用面向...

    JAVA设计模式--程序设计--反射--注解--泛型

    设计模式包括创建型模式(如单例、工厂方法、抽象工厂等)、结构型模式(如适配器、装饰器、代理等)和行为型模式(如策略、观察者、职责链等)。这些模式提供了良好的可复用性和可扩展性,帮助开发者遵循“开闭原则...

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

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。...压缩包中的示例程序可能就是一个演示如何在C++项目中应用策略模式的例子,通过查看源码和UML图,可以更深入地理解策略模式的实现细节和应用场景。

    新版设计模式手册 - C#设计模式(第二版)

    《新版设计模式手册 - C#设计模式(第二版)》是一部深入探讨C#编程中设计模式的权威指南,尤其适合已经有一定C#基础并希望提升软件设计能力的开发者阅读。设计模式是解决软件开发中常见问题的经验总结,是软件工程的...

Global site tag (gtag.js) - Google Analytics