桥接时势用于将概述部分与它的兑现部分分袂,使他们不错零丁的变化。这句话不是很好表示,我来浅薄翻译一下,大约等于将一个事物的两个维度的变化解耦开。
举个例子咱们来看个羊毫和蜡笔的例子,假定咱们需要大中小三种型号的画笔,能够绘画5种不同的色调, 老子午夜理论影院理论若是使用蜡笔那么咱们需要15只,若是使羊毫的话,咱们只需要3只,天天摸夜夜添添到高潮水汪汪外加5种色调盒就OK。这里的重要点在于,羊绝不错做到将笔的型号和色转机耦开,使他们不错零丁的变化,这等于桥接时势。
先来看一下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(); } }转头
桥接时势是结构型时势,当事物波及多个维度的变化时,使用桥接时势不错大大缩短系统复杂度,这个时势亦然我合计的最难表示的一个打算时势。