橋接模式就是創(chuàng)建一道橋梁來連接兩種類艾疟,一般都是對(duì)抽象和實(shí)現(xiàn)的橋接。對(duì)于那些不希望使用繼承或因?yàn)槎鄬哟卫^承導(dǎo)致系統(tǒng)類的個(gè)數(shù)急劇增加的系統(tǒng)弟疆,橋接模式尤為適用碾褂。簡(jiǎn)單實(shí)現(xiàn):
抽象部分
public abstract class Coffee {
protected Additives impl;
public Coffee(Additives impl){
this.impl = impl;
}
public abstract void makeCoffee();
}
抽象部分子類:
public class LargeCoffee extends Coffee{
public LargeCoffee(Additives impl) {
super(impl);
}
@Override
public void makeCoffee() {
System.out.println("Large coffee + " + impl.addSomething());
}
}
public class SmallCoffee extends Coffee{
public SmallCoffee(Additives impl) {
super(impl);
}
@Override
public void makeCoffee() {
System.out.println("small coffee + " + impl.addSomething());
}
}
實(shí)現(xiàn)部分:
public interface Additives {
String addSomething();
}
實(shí)現(xiàn)部分具體:
public class Milk implements Additives {
@Override
public String addSomething() {
return "milk";
}
}
public class Sugar implements Additives {
@Override
public String addSomething() {
return "sugar";
}
}
測(cè)試類
public class test {
public static void main(String[] args) {
LargeCoffee largeCoffee = new LargeCoffee(new Milk());
largeCoffee.makeCoffee();
}
}
可以發(fā)現(xiàn)嘀略,實(shí)現(xiàn)和抽象部分是互不相關(guān)的兩類,各自可以橫向擴(kuò)展帜羊,通過橋接組合在一起,實(shí)現(xiàn)各種功能帐姻,有很大的靈活性奶段。