设计模式学习笔记--桥接模式
2016-11-24 11:12
525 查看
七、桥接模式
桥接(Bridge)用于把抽象化与实现化解耦,使得而这可以独立变化。桥接模式中涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类,且这两个类型的类可被结构化改变,而互不影响。简介
多数情况下,过多的继承可能造成类爆炸问题,扩展十分不灵活。减少类之间的耦合,使之相对独立。桥接模式也有优缺点:1、优点是实现了抽象和现实的分离,增强扩展性,实现细节公开透明。2、缺点是增加了程序设计层次和理解层面的难度。
适用场景是:1、避免过多的类的继承的情况;2、需要两个类的相对独立。
演示
演示用不同的桥接实现类,相同的抽象方法,实现不同的颜色画画。定义一个接口DrawApi和它的实现类
RedCircle、
GreenCircle。而
Shape是一个图形的抽象类。
定义接口
桥接接口
DrawApi.java
public interface DrawApi { //绘制圆形,半径、圆心坐标x,y public void drawCircle(int radius,int x,int y); }
创建实现类
RedCircle.java
public class RedCircle implements DrawApi { @override public void drawCircle(int radius,int x,int y){ System.out.println("Draw Red Circle " + "r = " + raius + "Ox = " + x + "Oy = " + y ); } }
GreenCircle.java
public class GreenCircle implements DrawApi { @override public void drawCircle(int radius,int x,int y){ System.out.println("Draw Green Circle " + "r = " + raius + "Ox = " + x + "Oy = " + y ); } }
创建抽象类
Shape.java
public abstract class Shape { //使用桥接接口`DrawApi` protected DrawApi drawapi; //构造函数中初始化drawapi protected Shape(DrawApi drawapi){ this.drawapi = drawapi; } //抽象的draw方法 public abstract void draw(); }
创建接口实现类
Circle.java
public class Circle implements Shape{ //基本属性 private int radius,x,y; //构造函数,接收接本参数 public Circle(int radius,int x,int y,DrawApi drawapi){ super(drawapi); this.x = x; this.y = y; this.radius = radius; } public void draw(){ //drawapi是Shape的成员变量,子类继承使用。 drawapi.drawCircle(radius,x,y) } }
调用
BridgePatternDemo.java
public class BridgePatternDemo{ public static void main(String[] args){ // Shape red = new Circle(100,100,10,new RedCircle()); Shape green = new Circle(90,100,10,new GreenCircle()); //绘制图形 red.draw(); green.draw(); } }
相关文章推荐
- 设计模式学习笔记--Bridge桥接模式
- 设计模式学习笔记十四:适配器模式、桥接模式与外观模式
- 设计模式学习笔记-桥接模式
- 设计模式学习笔记之(桥接模式brid…
- 设计模式学习笔记(八)——Bridge桥接模式
- 设计模式学习笔记十四:适配器模式、桥接模式与外观模式
- 设计模式学习笔记——桥接(Bridge)模式
- java/android 设计模式学习笔记(8)---桥接模式
- 【设计模式学习笔记八】【结构型模式】【桥接模式(Bridge)】
- 设计模式学习笔记---桥接模式bridge(Java版)
- 【HeadFirst 设计模式学习笔记】19 桥接(Bridge)模式拾零
- C#面向对象设计模式学习笔记(7) - Bridge 桥接模式(结构型模式)
- 设计模式学习笔记(八)——Bridge桥接
- 设计模式学习笔记——桥接(Bridge)模式
- 设计模式学习笔记之桥接模式
- 设计模式学习笔记之桥接模式
- HeadFirst 设计模式学习笔记20--桥接(Bridge)模式拾零
- 设计模式学习笔记-桥接模式
- 设计模式学习笔记--桥接模式
- 设计模式学习笔记(八)——Bridge桥接模式