java設計模式7——橋接模式
1、橋接模式介紹
橋接模式是將抽象部分與它的實作部分分離,使他們都可以獨立的變化,它是一種物件結構型模式,又稱為柄體模式或介面模式,
2、解決問題
2.1、將復雜的組合設計問題轉變為可以橋接的組合問題,如電腦的例子,電腦有型別和品牌,兩者可以任意組合,
2.2、沒有用設計模式時的示意圖

2.3、使用橋接模式后的示意圖
將這個場景中的兩個變化的維度分離,品牌和型別,兩者通過橋接進行兩兩組合,

3、代碼演示:
3.1、撰寫品牌的抽象類
package com.xgp.company.結構性模式.橋接模式;
/**
* 品牌類
*/
public interface Brand {
void info();
}
3.2、由抽象類誕生出品牌
蘋果:
package com.xgp.company.結構性模式.橋接模式;
/**
* 蘋果品牌
*/
public class Apple implements Brand {
@Override
public void info() {
System.out.print("蘋果");
}
}
聯想:
package com.xgp.company.結構性模式.橋接模式;
public class Laptop extends Computer {
public Laptop(Brand brand) {
super(brand);
}
@Override
protected void info() {
super.info();
System.out.println("筆記本");
}
}
3.3、電腦型別的抽象類
package com.xgp.company.結構性模式.橋接模式;
/**
* 抽象的電腦型別類
*/
public abstract class Computer {
//組合:品牌,電腦自帶品牌
protected Brand brand;
public Computer(Brand brand) {
this.brand = brand;
}
protected void info() {
//自帶品牌
brand.info();
}
}
3.4、由電腦型別的抽象類誕生實作類
臺式電腦:
package com.xgp.company.結構性模式.橋接模式;
public class Desktop extends Computer {
public Desktop(Brand brand) {
super(brand);
}
@Override
protected void info() {
super.info();
System.out.println("臺式機");
}
}
筆記本電腦:
package com.xgp.company.結構性模式.橋接模式;
public class Laptop extends Computer {
public Laptop(Brand brand) {
super(brand);
}
@Override
protected void info() {
super.info();
System.out.println("筆記本");
}
}
3.5、撰寫測驗類,進行橋接
package com.xgp.company.結構性模式.橋接模式;
public class Test {
public static void main(String[] args) {
//蘋果筆記本
Computer computer = new Laptop(new Apple());
computer.info();
//聯想臺式機
Computer computer12 = new Desktop(new Lenovo());
computer12.info();
}
}
輸出結果:
蘋果筆記本
聯想臺式機
4、類圖示意:

5、好處分析:

6、弊端分析:

7、最佳實作

8、現已經使用的場景

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/26095.html
標籤:設計模式
上一篇:java設計模式6——代理模式
