综合

设计模式系列-桥接模式

时间:2010-12-5 17:23:32  作者:域名   来源:数据库  查看:  评论:0
内容摘要:桥接模式用于将抽象部分与它的实现部分分离,使他们可以独立的变化。这句话不是很好理解,我来简单翻译一下,大概就是将一个事物的两个维度的变化解耦开。举个例子我们来看个毛笔和蜡笔的例子,假设我们需要大中小三

 桥接模式用于将抽象部分与它的设计实现部分分离,使他们可以独立的模式模式变化。这句话不是系列很好理解,我来简单翻译一下,桥接大概就是设计将一个事物的两个维度的变化解耦开。

举个例子

我们来看个毛笔和蜡笔的模式模式例子,假设我们需要大中小三种型号的系列画笔,亿华云能够绘制5种不同的桥接颜色,如果使用蜡笔那么我们需要15只,设计如果使毛笔的模式模式话,我们只需要3只,系列外加5种颜料盒就OK。桥接这里的设计关键点在于,毛笔可以做到将笔的模式模式型号和颜色解耦开,使他们可以独立的系列变化,这就是b2b信息网桥接模式。

先来看一下UML图:

再来看一下具体代码如何实现。

public interface Color {     String draw(); } 

红颜色

public class RedColor implements Color {     @Override     public String draw() {         return "红色";     } } 

定义抽象的毛笔

public abstract class BrushPen {     //桥接画笔和颜色     protected Color color;     public void setColor(Color color){         this.color = color;     }     public abstract void operation(); } 

定义一个小号的毛笔

public class SmallBrushPen extends BrushPen {     @Override     public void operation() {         System.out.println(this.color.draw() + " 小号毛笔");     } } 

客户端这样使用桥接模式

public class BridgeBrushPenDemo {     public static void main(String[] args){         BrushPen smallBrushPen = new SmallBrushPen();         //红色小号毛笔         smallBrushPen.setColor(new RedColor());         smallBrushPen.operation();         //绿色小号毛笔         smallBrushPen.setColor(new Green());         smallBrushPen.operation();     } } 

总结

桥接模式是结构型模式,当事物涉及多个维度的变化时,使用桥接模式可以大大降低系统复杂度,这个模式也是我认为的最难理解的一个设计模式。

源码下载
copyright © 2025 powered by 编程之道  滇ICP备2023006006号-34sitemap