`
kevin_wanwei
  • 浏览: 118477 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

设计模式学习系列(二)Strategy模式和Bridge模式

阅读更多

Strategy模式定义:

定义一系列的算法,把它们一个个封装起来,并且使它们之间可以相互替换。Strategy使算法可以独立于使用它们客户变化而变化。

依照程序员的理解:“在抽象类中定义一种抽象的方法,然后有不同子类去实现这个方法,从而就实现算法分离。当然你也可以定义一个接口,由不同的类去实现这个接口,从而也实现算法分离”

在生活中也有很多例子,比如:”在制造业,制造零件肯定有一套完整的标准,各个生产厂家必须按照这个标准来生产零件,否则生产零件就是废品“

代码示例:

public interface Name{

    public String getName();

}

public class rnx implements Name{

       public String getName(){

           return "rnx";
      }
}


public class wangwei    implements Name{

       public String getName(){

           return "wangwei";
      }
}

public class Test{

       public static void main(String[] args){

          //假设在程序中我没有定义Name这个接口
       /*
          Object obj=getObj();
         if(obj instanceof rnx){
            rnx r=(rnx)obj;
            r.getName();

          }else if(obj instanceof wangwei){

  wangwei w=(wangwei)obj;
            w.getName();
}


*/
                //如果在程序中定义了Name接口
        Name name=getObj();
             name.getName();//这样代码就变得非常清晰了
 }

}

 Strategy模式在java中运用也比较多,例如Swing中事件监听器等

 

 

Bridge模式定义:

将抽象于其实现解耦,使他们可以独立变化。

 

依照程序员方式来理解:”要想给某个类增加一个新的方法,应该先定义一个接口,在该接口中定义相对应的方法,从而让该类实现这个接口来达到目的,反对使用子类继承父类的方式,这样做的好处就是,避免类的过多。“

 

这就不给出示例代码了,讲的比较清楚了

 

0
0
分享到:
评论

相关推荐

    人人都懂设计模式 人人都懂设计模式

    设计模式是软件开发中的一种解决方案,它提供了一种通用的设计思想和方法论,可以帮助开发者更好地设计和实现软件系统。设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。 在本书中,作者罗伟富通过 ...

    24种设计模式以及混合设计模式

    通过学习和应用这些设计模式,开发者不仅可以提高代码的可读性、可维护性和可扩展性,还能提升团队间的沟通效率,因为设计模式是软件工程中的通用语言。对于任何有志于提升软件开发水平的人来说,理解和掌握设计模式...

    设计模式之美—学习笔记

    在这个“设计模式之美”的学习笔记中,我们将探讨一些主要的设计模式,以及它们在实际开发中的应用。 首先,我们从创建型模式开始。这类模式主要用于对象的创建,如单例模式(Singleton)、工厂模式(Factory ...

    JAVA设计模式chm文档

    设计模式之Bridge 设计模式之Flyweight(享元) 行为模式: 设计模式之Template 设计模式之Memento(备忘机制) 设计模式之Observer 设计模式之Chain of Responsibility(职责链) 设计模式之Command 设计模式之State 设计...

    《Java设计模式》课后答案-刘伟.rar

    行为型设计模式如策略(Strategy)、模板方法(Template Method)、观察者(Observer)、命令(Command)、迭代器(Iterator)、访问者(Visitor)、状态(State)、职责链(Chain of Responsibility)、解释器...

    设计模式学习笔记总结

    在IT行业中,设计模式是软件开发中的重要概念,它们...通过深入学习和实践这些设计模式,开发者能够编写出更加灵活、可维护的代码,提高软件设计的质量和复用性。理解并掌握这些模式是每个C#开发者进阶之路的重要一步。

    C#设计模式PDF 电子书

    《C#设计模式PDF 电子书》是一本专注于C#编程语言中设计模式的应用和解析的书籍,2005年04版意味着它在设计模式领域的应用尚处于早期阶段,但仍然具有很高的学习价值。设计模式是软件工程中经过实践验证的、解决常见...

    《java设计模式》课后习题模拟试题解答——刘伟.zip

    2. **模式的实现**:学习如何在Java代码中实现各种设计模式,包括类图和对象图的绘制,以及相应的代码结构。 3. **模式间的相互关系**:了解不同设计模式之间的关联和区别,比如装饰器和代理模式的区别,或者单例...

    23种面向对象设计模式

    文档中的“23种设计模式学习笔记.doc”可能包含了对这23种模式的详细解释和实例,而“设计模式之我爱我家.doc”可能从一个更生活化的角度来阐述设计模式的概念。“软件23种设计模式,超级经典的.pdf”可能是对这些...

    设计模式那点事

    《设计模式那点事》这本书的PPT为我们提供了一种深入理解和学习设计模式的途径。在这里,我们将深入探讨设计模式的核心概念、分类以及它们在实际开发中的应用。 首先,设计模式基于面向对象编程思想,其核心目标是...

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

    ### 设计模式精解——GoF 23种设计模式解析及C++实现 #### 0. 引言 设计模式作为面向对象编程的核心组成部分,是...设计模式的学习过程虽然漫长且充满挑战,但最终会使你在软件设计和开发过程中变得更加高效和自信。

    C++二十三种设计模式

    学习并熟练掌握这二十三种设计模式,是每个C++开发者进阶的必经之路。通过阅读《CPLUS二十三种设计模式--经典之作.docx》这份文档,你将更深入地理解这些模式的原理、实现方式以及如何在实际编程中灵活运用它们。 ...

    Head First设计模式和HeadFirst in java 源码以及23种设计模式关系图

    总的来说,这个压缩包包含的资源可以帮助你深入理解设计模式,通过《HeadFirst设计模式》和《HeadFirst in Java》的源码,你可以学习到如何在实际项目中应用这些模式。而UML类图则提供了直观的视角,便于你把握设计...

    java设计模式中英文各种版本打包下载 学习设计模式必备材料

    总之,Java设计模式是软件开发中的重要工具,通过学习和应用,可以提高代码质量,降低维护成本,同时也是成为一名合格的J2EE架构师的必要条件。这个压缩包中的各种版本的资源,无论是中文还是英文,都能为你的设计...

    Java设计模式代码,设计模式系列所有示例代码

    本资源“Java设计模式代码,设计模式系列所有示例代码”为学习者提供了实际操作设计模式的宝贵机会,使理论与实践相结合,提升开发效率和代码质量。 首先,设计模式分为三大类:创建型、结构型和行为型。创建型模式...

    c#设计模式

    通过学习和实践这些设计模式,C#开发者可以更好地理解和解决复杂的软件设计问题,提高代码质量,同时也为团队协作提供了通用的语言。在实际项目中,可以根据需求灵活选用适合的设计模式,从而实现高效、可扩展和易于...

    您的设计模式.pdf。

    "设计模式" 在软件开发中,设计模式是一种解决特定问题的通用方法。它可以帮助开发者编写更加灵活、可维护、可扩展的代码。本书《您的设计模式》对设计模式进行了详细的讲解,涵盖了策略模式、代理模式、单例模式、...

    Java设计模式(第二版)中文版

    ### Java设计模式(第二版)中文版 #### 思维框架的培养;对新手与码农均适用 在软件开发领域,设计模式是一种被广泛采用的解决方案,它可以帮助开发者更好地组织代码、解决常见问题,并提高软件的整体质量和可维护...

    《设计模式:可复用面向对象软件的基础》学习并理解 23 种设计模式

    - **经验借鉴**:设计模式是基于众多专家的经验和智慧,提供了经过实践检验的解决方案。 - **提高可维护性和可复用性**:通过遵循已知的最佳实践,可以显著提升代码质量。 - **促进团队沟通**:统一的语言和模式使得...

    无废话C#设计模式系列文章

    无废话C#设计模式系列文章是一组深入探讨C#编程中的设计模式的资源,作者以简洁明了的方式阐述了这些模式。设计模式是软件工程中经过时间验证的、解决常见问题的最佳实践,它们为程序员提供了在特定场景下设计可复用...

Global site tag (gtag.js) - Google Analytics