1.1.1 描述
l 正规描述
将抽象化与实现化脱耦,使得二者可以独立的变化,也就是说将他们之间的强关联变成弱关联,也就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以独立的变化。
l 形象描述
早上碰到MM,要说早上好,晚上碰到MM,要说晚上好;碰到MM穿了件新衣服,要说你的衣服好漂亮哦,碰到MM新做的发型,要说你的头发好漂亮哦。不要问我“早上碰到MM新做了个发型怎么说”这种问题,自己用BRIDGE组合一下不就行了。
1.1.2 类图&示意代码
public abstract class Abstraction(){ private Implementation implementation;
public void Operation1(){ implementation.Operation1Impl(); } }
public class RefinedAbstraction1 extends Abstraction(){ public void Operation1(){ //to refine the operation } }
public class RefinedAbstraction2 extends Abstraction(){ public void Operation1(){ //to refine the operation } }
public interface Implementation(){ Operation1Impl(); }
public class RealImplementation2 implements Impoementation(){ public void Operation1Impl(){ //to do } }
public class RealImplementation2 implements Impoementation(){ public void Operation1Impl(){ //to do } }
public class Client(){ public void main(String args[]){ Abstraction a1 = new RefinedAbstraction1(); a1.Operation1(); Abstraction a2 = new RefinedAbstraction1(); a2.Operation1(); } } |
注: