`

策略模式的理解

阅读更多

参考:http://www.cnblogs.com/justinw/archive/2007/02/06/641414.html

策略模式遵守的几个原则:

1、依赖倒置:即依赖接口编程,而不是依赖实现

     例如:Duck中的Performfly和PerformQuack方法中调用的是接口

2、优先使用组合而不是继承(因为继承大大提高了类之间的依赖性,耦合度较高)

     例如:mallarduck不直接从Fly或Quack类继承,如果是直接从这些类中继承,则Fly和Quack的改变将影响

     所有的子类,而使用组合的方式就可以应用Fly和Quack的多态性,如果子类发生编号不影响其它的类(MallardDuck的  

     Fly的变化不会印象RedHeadDuck和RubberDuck的Fly)

策略模式的应用场景

   策略模式用于封装一个类的变化剧烈的行为,从而将此行为的变化对此类或此类的子类的影响排除。

   例如RubberDuck的Fly可以在RubberDuck中构造一个不会飞的FlyBehavior,这样就不会影响到父类和其它的Duck子类的FlyBehavior.

分享到:
评论

相关推荐

    桥接模式和策略模式的区别,内含可运行代码和两者详细区别

    在可运行代码中,可能包含桥接模式和策略模式的示例实现,通过阅读和理解这些代码,可以帮助你更好地掌握这两种模式的用法和应用场景。 总的来说,桥接模式和策略模式都是为了提高代码的灵活性和可维护性,但它们...

    抽象工厂模式+工厂方法模式+策略模式+类图实现手机加工厂

    本文将探讨三个重要的设计模式:抽象工厂模式、工厂方法模式以及策略模式,并结合一个实际的场景——手机加工厂,来具体阐述它们的应用。 首先,我们来看**抽象工厂模式**。这个模式主要用于创建相关或依赖对象的...

    Spring下使用策略模式

    同时,阅读和理解Spring的源码能帮助我们更好地掌握其工作原理,从而在实际项目中更灵活地运用策略模式。 最后,`pom.xml`文件是Maven项目的配置文件,它包含了项目依赖、插件和构建设置。而`src`目录通常包含项目...

    策略模式在实际项目中的应用二

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式通过定义一系列的...在实际开发过程中,理解并熟练掌握策略模式,不仅可以提升代码质量,还能降低项目的维护成本,从而提高工作效率。

    Java策略模式+案例

    文档可能会给出一些生活中的例子,比如交通规则(直行、左转、右转)来帮助理解策略模式的基本思想。 而"StrategyProject"可能是一个Java项目,包含了策略模式的实例代码。在这个项目中,可能定义了一个策略接口,...

    策略模式代码实现

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在策略模式中,一个类的行为或其算法可以在运行时更改。...通过阅读和理解提供的源码,我们可以更深入地理解策略模式的工作原理及其在实际编程中的应用。

    设计模式之策略模式

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要根据不同的条件或场景来执行不同算法...通过阅读提供的博客文章和实例代码,我们可以更深入地理解并掌握策略模式的应用。

    策略模式的实现,通过反射

    首先,我们理解策略模式的基本结构。策略模式包含三个主要角色:策略接口(Context)、具体策略类(Concrete Strategies)以及上下文(Strategy)。策略接口定义了所有支持的算法的公共接口,具体策略类实现了这个...

    Java 设计模式 策略模式

    对于初学者来说,这是一个很好的资源,可以帮助理解策略模式的工作原理和应用场景。如果你在阅读过程中遇到问题或有其他疑问,可以在评论区留言,以便获得帮助。 总之,策略模式是一种强大的设计模式,它鼓励我们...

    简单工厂模式VS策略模式小应用

    今天我们将探讨两种重要的设计模式:简单工厂模式和策略模式。这两种模式都是面向对象设计的核心概念,它们各自有着独特的优势和适用场景。 首先,我们来理解简单工厂模式。简单工厂模式是创建型设计模式的一种,它...

    工厂模式和策略模式

    在软件设计模式的世界里,"工厂模式"和"策略模式"是两种常用的设计模式,它们在构建可扩展和可维护的代码中起着至关重要的作用。让我们深入探讨这两种模式及其在实际开发中的应用。 首先,工厂模式是一种创建型设计...

    策略模式demo例子

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,有时我们需要根据不同的场景或条件...通过学习和理解`StrategyMarket`中的示例,你可以更深入地了解如何在实际项目中有效地运用策略模式。

    设计模式之策略模式(Strategy Pattern)

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要根据不同的条件或时间点...通过理解并熟练应用策略模式,开发者可以更好地应对复杂系统的挑战,提高软件的质量和灵活性。

    设计模式之策略模式(附demo)

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件工程中,我们经常遇到需要根据不同...通过分析和学习"policy"压缩包中的示例代码,我们可以深化对策略模式的理解,并将其应用于实际的开发工作中。

    php 设计模式 策略模式

    短小版的thinkphp3.2 缓存类 策略模式理解 希望可以帮助到你

    java策略模式小例子

    总结一下,这个"java策略模式小例子"项目是一个很好的起点,用于理解和实践如何在Java中使用策略模式。通过分析`Strategy_Game`中的代码,我们可以深入理解策略模式的工作原理及其在实际问题中的应用。无论你是初学...

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

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

    设计模式之策略模式,商场收银,封装算法

    这些文件可以帮助读者更好地理解和学习策略模式的实践应用。 总结起来,策略模式和封装算法在商场收银场景中的结合,提供了灵活的折扣策略管理方式,使得系统能够根据业务需求快速适应变化,同时也降低了代码的复杂...

    设计模式——策略模式 & 单例模式

    策略模式和单例模式是软件设计中两种非常重要的设计模式,它们在实际开发中有着广泛的应用。在这篇文章中,我们将深入探讨这两种模式的核心概念、实现方式以及如何在实际项目中运用。 策略模式是一种行为设计模式,...

    设计模式之策略模式源码

    策略模式是一种行为设计模式,...通过阅读和理解这个压缩包中的源码,你可以深入理解策略模式的工作原理,并将其应用到自己的项目中,解决类似的问题。不断实践和运用设计模式,将有助于你成为一名更优秀的软件开发者。

Global site tag (gtag.js) - Google Analytics