`
kevin_wanwei
  • 浏览: 114774 次
  • 性别: 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
分享到:
评论

相关推荐

    JAVA设计模式chm文档

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

    设计模式文档 chm

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

    设计模式Strategy模式

    Strategy模式封装算法。如果有多个算法可以互换使用,Strategy比较合适。 Bridge模式是对抽象和具体的进一步抽象。

    研磨设计模式(完整带书签).part2.pdf

    也可以作为高效学生深入学习设计模式的参考读物! 第1章 设计模式基础 第2章 简单工厂 第3章 外观模式 第4章 适配器模式(Adapter) 第5章 单例模式(Singleton) 第6章 工厂方法模式(Factory Method) 第7章...

    36种最新设计模式整理

    36种最新设计模式整理 Design Pattern: Simple Factory 模式 Design Pattern: Abstract Factory 模式 Design Pattern: Builder 模式 Design Pattern: Factory Method 模式 Design Pattern: Prototype 模式 ...

    设计模式精解-GoF 23种设计模式解析

    设计模式精解-GoF 23 种设计模式解析附 C++实现源码 目 录 引 言 0.1 设计模式解析(总序) 0.2 设计模式解析后记 0.3 与作者联系 1 创建型模式 1.1 Factory模式 1.2 AbstactFactory模式 1.3 Singleton...

    C#设计模式.PDF

    二、 设计模式举例 5 三、 先有鸡还是先有蛋? 7 四、 大瓶子套小瓶子还是小瓶子套大瓶子? 8 五、 .net本质 9 C#设计模式(2) 11 一、 "开放-封闭"原则(OCP) 12 二、 里氏代换原则(LSP) 12 C#设计模式(3) 19 ...

    设计模式可复用面向对象软件的基础.zip

    6.3 书写文档和学习的辅助手段 232 6.4 现有方法的一种补充 233 6.5 重构的目标 233 6.6 本书简史 234 6.7 模式界 235 6.8 Alexander 的模式语言 235 6.9 软件中的模式 236 6.10 邀请参与 237 6.11 临别感想 237 ...

    C#面向对象设计模式纵横谈(视频与源码)

    C#面向对象设计模式纵横谈(8):Bridge 桥接模式(结构型模式) C#面向对象设计模式纵横谈(9):Composite 组合模式(结构型模式) C#面向对象设计模式纵横谈(10):Decorator 装饰模式(结构型模式) C#面向对象设计...

    设计模式精解 译者:熊节 程序员必看书籍之一 part2

    本书适用于学习面向中对象设计和设计模式的学生、程序员以及从事软件开发的人士。 本书要点包括: 对象、封装和继承的新观点。 设计模式的思想、起源及其在软件设计学科中的应用。 模式基础以及使用统一建模语言...

    Head First设计模式

    第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的MVC模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词),第13章介绍如何进一步学习设计模式,如何发觉新的设计模式...

    HeadFirst设计模式(中文版)

    第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的MVC模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词),第13章介绍如何进一步学习设计模式,如何发觉新的设计模式...

    大优惠Head First 设计模式

    第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的MVC模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词),第13章介绍如何进一步学习设计模式,如何发觉新的设计模式...

    33种JAVA设计模式DEMO

    这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。 适配器模式(Adapter Pattern) 桥接模式(Bridge Pattern) 过滤器模式(Filter、Criteria Pattern) 组合模式...

    设计模式--C++

    6.3 书写文档和学习的辅助手段 232 6.4 现有方法的一种补充 233 6.5 重构的目标 233 6.6 本书简史 234 6.7 模式界 235 6.8 Alexander 的模式语言 235 6.9 软件中的模式 236 6.10 邀请参与 237 6.11 临别感想 237 ...

    head first 设计模式

    第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的MVC模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词),第13章介绍如何进一步学习设计模式,如何发觉新的设计模式...

    设计模式:可复用面向对象软件的基础--详细书签版

    6.3 书写文档和学习的辅助手段 232 6.4 现有方法的一种补充 233 6.5 重构的目标 233 6.6 本书简史 234 6.7 模式界 235 6.8 alexander 的模式语言 235 6.9 软件中的模式 236 6.10 邀请参与 237 6.11 临别感想...

    HeadFirst 设计模式java源代码

    第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的MVC模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词),第13章介绍如何进一步学习设计模式,如何发觉新的设计模式...

    Head First 设计模式(中文版)

    第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的MVC模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词),第13章介绍如何进一步学习设计模式,如何发觉新的设计模式...

    用Java实现23种设计模式

    用Java实现23种设计模式 1. 创建型模式 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern)...

Global site tag (gtag.js) - Google Analytics