现在的位置: 首页 > 综合 > 正文

java Bridge 桥接模式

2013年10月17日 ⁄ 综合 ⁄ 共 1402字 ⁄ 字号 评论关闭

Bridge模式的概念
Bridge模式是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。

 

意图:将一组实现与另一组使用他们的对象分离

问题:一个抽象类派生类 必须使用多个实现 ,但出现类数量增长

尽量用最简单的例子来说明:我来小的时候画图,画图,画三角形,长方形,还有不同颜色的铅笔来填色,要完成这样一个简单的任务。

假如我们为每种形状设计一个类,每种颜色设计一种类,那图案的种类将是恐怖级的,假如有十种图形,十种颜色,将会出现一百种组合,要能表示所有的图案,将至少要一百个类。

Bridge模式可以很好的解决这类问题。

Client
    Bridge模式的使用者
Abstraction
    抽象类接口(接口或抽象类)
    维护对行为实现(Implementor)的引用
Refined Abstraction
    Abstraction子类
Implementor
    行为实现类接口 (Abstraction接口定义了基于Implementor接口的更高层次的操作)
ConcreteImplementor
    Implementor子类

把象和实现分离开来,把填充颜色的行为抽象为一个接口:

 

 //填充颜色行为抽象成接口

public interface FixColor {
        public void daub();      //涂上颜色方法
}

//涂上绿色颜色
public class FixGreen implements FixColor{
    public void daub(){
      System.out.println("daub green");
    }

}

 

public class FixRed implements FixColor{
    public void daub(){
          System.out.println("daub red");
        }

}

 

//抽象形装  填充颜色属性和 着色方法
public abstract class  Shape {
     FixColor oneColor;
     public   abstract   void doColor();
}

 

public class Circle extends Shape{
      public void setColer(FixColor fixcolor ){
         this.oneColor=fixcolor;
      }
      public void  doColor(){
         oneColor.daub();         //涂上一种颜色
      }

}

别的图形省略........

 

public class Cilent {
    public static void main(String[] args){
        Circle circle= new Circle();
        FixGreen green =new  FixGreen();
        circle.setColer(green);
       
        circle.doColor();

 

    }
}

桥接模式关键是把抽象与行为实现相分离,动态结合。

抱歉!评论已关闭.