策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
设计原则:
找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
针对接口编程,而不是针对变化编程。
多用组合,少用继承。
定义2个接口 FlyBehavior.java ,QuackBehavior.java
public interface FlyBehavior { public void fly(); } public interface QuackBehavior { public void quack(); }
分别实现这两个接口
public class FlyNoWay implements FlyBehavior { public void fly() { System.out.println("I can't fly"); } } public class FlyWithWings implements FlyBehavior{ public void fly() { System.out.println("I'm Fly"); } } public class MuteQuack implements QuackBehavior{ public void quack() { System.out.println("<< Silence >>"); } } public class Quack implements QuackBehavior { public void quack() { System.out.println("Quack"); } } public class Squeak implements QuackBehavior{ public void quack() { System.out.println("Squeak"); } }
定义个抽象类Duck.java 作为父类。
public abstract class Duck { protected FlyBehavior flyBehavior; protected QuackBehavior quackBehavior; public Duck() { } public abstract void display(); public void performFly() { flyBehavior.fly(); } public void performQuack() { quackBehavior.quack(); } public void swim() { System.out.println("All ducks float, even decopys"); } }
实现Duck.java的子类MarlldarDuck.java
public class MarlldarDuck extends Duck { public MarlldarDuck() { flyBehavior = new FlyWithWings(); quackBehavior = new Quack(); } @Override public void display() { System.out.println("I'm a real Marlldar Duck"); } }
做个测试用例
public class MiniDuckSimulator { public static void main(String[] args) { Duck marlldar = new MarlldarDuck(); marlldar.performFly(); marlldar.performQuack(); } }
您还没有登录,请您登录后再发表评论
策略模式是Java设计模式中的一种行为模式,它允许在运行时选择算法或策略,从而提供了更大的灵活性。在HeadFirst的《设计模式》一书中,第一章深入浅出地讲解了这一模式,通过实例帮助读者理解其核心概念和应用场景...
根据给定文件内容,以下是关于Java设计模式的知识点说明: 1. 策略模式(Strategy Pattern)是一种行为设计模式,允许在运行时选择算法的行为。策略模式的意图是定义一系列算法,将每个算法封装起来,并使它们可以...
在这个“java设计模式-策略模式”的示例中,我们将深入探讨如何使用策略模式来实现一个简单的超市促销系统。 策略模式的核心思想是定义一系列的算法,并将每一个算法封装起来,使它们可以互相替换。这使得算法的...
JAVA-设计模式-行为型模式-策略模式
这个“JAVA设计模式-chm版”资源显然包含了关于Java设计模式的详细信息,便于理解和应用。设计模式是对常见问题的解决方案的标准化描述,它们在软件工程中起到了重要的作用,帮助开发者创建可维护、可扩展且易于理解...
在Java编程语言中,设计模式是一种经过验证的解决常见软件设计问题的最佳实践。单例模式是其中最常用的一种,它的核心思想是确保一个类只有一个实例,并提供全局访问点。单例模式的应用场景包括:控制资源的访问、...
总结来说,Java设计模式中的策略模式是一种非常实用的设计模式,它允许我们在运行时选择和改变算法,提高了代码的可维护性和灵活性。通过观看厉风行老师的教程,你可以深入理解策略模式的原理,并将其运用到实际项目...
Java设计模式、程序设计、反射、注解和泛型是Java开发中的核心概念,它们各自在不同的场景下发挥着重要作用,构建出高效、可维护的软件系统。 首先,Java设计模式是面向对象编程中的一种最佳实践,是解决常见问题的...
在这个“JAVA设计模式例程-策略模式”的压缩包中,我们可以深入探讨策略模式的原理及其应用。 策略模式的核心思想是定义一系列算法,并将每一个算法封装起来,使它们可以相互替换。策略对象的使用让算法的变化独立...
这篇名为"JAVA设计模式---100%推荐"的资源,可能是对Java设计模式的深入解析,旨在帮助开发者更好地理解和应用这些模式。 设计模式通常分为三类:创建型、结构型和行为型。创建型模式涉及对象的实例化过程,如单例...
综上所述,策略模式在Java编程中是一个非常实用的设计模式,通过将算法封装到独立的策略类中,可以有效地管理和切换不同的行为,从而提升代码的灵活性和可维护性。在压缩包文件"StrategyPatterns例子"中,你可以找到...
### Java设计模式的应用 #### 一、引言 在当今快速发展的软件开发领域,Java作为一门功能强大且灵活的语言,不仅拥有丰富的API资源,还能与强大的数据库系统无缝对接。这使得许多开发人员能够以模块化的形式构建...
Java设计模式中的工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。工厂模式的核心思想是将对象的创建过程封装起来,使得创建过程独立于使用过程,从而提高了代码的可扩展性和可维护性。在HeadFirst...
JAVA设计模式是编程领域中非常重要的概念,它为软件开发人员提供了在特定情境下解决常见问题的模板。设计模式公司出品的《JAVA设计模式》书籍,详细介绍了多种设计模式,适合不同水平的程序员学习和使用。 首先,...
通过阅读《设计模式-Java语言中的应用》,读者不仅可以掌握设计模式的基本概念和原理,还能学习到如何在实际项目中选择合适的设计模式,以及如何优雅地在Java代码中实现这些模式。这将有助于提升开发者的编程技巧,...
本资源主要介绍了JAVA设计模式的原则和23种设计模式的总结。设计模式是软件设计中的一种解决方案,能够使软件系统更加灵活、可维护和可扩展。本资源首先介绍了设计模式的六大原则,包括单一责任原则、开闭原则、里氏...
《Java与模式》是阎宏博士的一本经典著作,它深入浅出地介绍了如何在Java编程中应用设计模式。这本书不仅讲解了设计模式的基本概念,还涵盖了23种经典的GOF设计模式,并结合Java语言特性进行了详细的解释和实例演示...
总结来说,策略模式在Java和Android开发中是一种非常实用的设计模式,它通过封装不同的策略,使程序能够根据需要在运行时灵活选择和切换算法,提高了代码的灵活性和可扩展性。理解和掌握策略模式对于提升Android开发...
相关推荐
策略模式是Java设计模式中的一种行为模式,它允许在运行时选择算法或策略,从而提供了更大的灵活性。在HeadFirst的《设计模式》一书中,第一章深入浅出地讲解了这一模式,通过实例帮助读者理解其核心概念和应用场景...
根据给定文件内容,以下是关于Java设计模式的知识点说明: 1. 策略模式(Strategy Pattern)是一种行为设计模式,允许在运行时选择算法的行为。策略模式的意图是定义一系列算法,将每个算法封装起来,并使它们可以...
在这个“java设计模式-策略模式”的示例中,我们将深入探讨如何使用策略模式来实现一个简单的超市促销系统。 策略模式的核心思想是定义一系列的算法,并将每一个算法封装起来,使它们可以互相替换。这使得算法的...
JAVA-设计模式-行为型模式-策略模式
这个“JAVA设计模式-chm版”资源显然包含了关于Java设计模式的详细信息,便于理解和应用。设计模式是对常见问题的解决方案的标准化描述,它们在软件工程中起到了重要的作用,帮助开发者创建可维护、可扩展且易于理解...
在Java编程语言中,设计模式是一种经过验证的解决常见软件设计问题的最佳实践。单例模式是其中最常用的一种,它的核心思想是确保一个类只有一个实例,并提供全局访问点。单例模式的应用场景包括:控制资源的访问、...
总结来说,Java设计模式中的策略模式是一种非常实用的设计模式,它允许我们在运行时选择和改变算法,提高了代码的可维护性和灵活性。通过观看厉风行老师的教程,你可以深入理解策略模式的原理,并将其运用到实际项目...
Java设计模式、程序设计、反射、注解和泛型是Java开发中的核心概念,它们各自在不同的场景下发挥着重要作用,构建出高效、可维护的软件系统。 首先,Java设计模式是面向对象编程中的一种最佳实践,是解决常见问题的...
在这个“JAVA设计模式例程-策略模式”的压缩包中,我们可以深入探讨策略模式的原理及其应用。 策略模式的核心思想是定义一系列算法,并将每一个算法封装起来,使它们可以相互替换。策略对象的使用让算法的变化独立...
这篇名为"JAVA设计模式---100%推荐"的资源,可能是对Java设计模式的深入解析,旨在帮助开发者更好地理解和应用这些模式。 设计模式通常分为三类:创建型、结构型和行为型。创建型模式涉及对象的实例化过程,如单例...
综上所述,策略模式在Java编程中是一个非常实用的设计模式,通过将算法封装到独立的策略类中,可以有效地管理和切换不同的行为,从而提升代码的灵活性和可维护性。在压缩包文件"StrategyPatterns例子"中,你可以找到...
### Java设计模式的应用 #### 一、引言 在当今快速发展的软件开发领域,Java作为一门功能强大且灵活的语言,不仅拥有丰富的API资源,还能与强大的数据库系统无缝对接。这使得许多开发人员能够以模块化的形式构建...
Java设计模式中的工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。工厂模式的核心思想是将对象的创建过程封装起来,使得创建过程独立于使用过程,从而提高了代码的可扩展性和可维护性。在HeadFirst...
JAVA设计模式是编程领域中非常重要的概念,它为软件开发人员提供了在特定情境下解决常见问题的模板。设计模式公司出品的《JAVA设计模式》书籍,详细介绍了多种设计模式,适合不同水平的程序员学习和使用。 首先,...
通过阅读《设计模式-Java语言中的应用》,读者不仅可以掌握设计模式的基本概念和原理,还能学习到如何在实际项目中选择合适的设计模式,以及如何优雅地在Java代码中实现这些模式。这将有助于提升开发者的编程技巧,...
本资源主要介绍了JAVA设计模式的原则和23种设计模式的总结。设计模式是软件设计中的一种解决方案,能够使软件系统更加灵活、可维护和可扩展。本资源首先介绍了设计模式的六大原则,包括单一责任原则、开闭原则、里氏...
《Java与模式》是阎宏博士的一本经典著作,它深入浅出地介绍了如何在Java编程中应用设计模式。这本书不仅讲解了设计模式的基本概念,还涵盖了23种经典的GOF设计模式,并结合Java语言特性进行了详细的解释和实例演示...
总结来说,策略模式在Java和Android开发中是一种非常实用的设计模式,它通过封装不同的策略,使程序能够根据需要在运行时灵活选择和切换算法,提高了代码的灵活性和可扩展性。理解和掌握策略模式对于提升Android开发...