現需要提供能夠繪製4種不同顏色且筆畫粗細有大中小3種型號的畫筆。
我們需要準備3*4=12支蠟筆,也就是說必須準備12個具體的蠟筆類
只需要準備三種型號的毛筆,外加四個顏料盒,用3+4=7個類就可以實現12支蠟筆的功能
橋接模式的定義:將抽象與實現分離,使它們可以獨立變化。它是用關聯關係代替繼承關係來實現,從而降低了抽象和實現這兩個可變維度的耦合度。
interface Implementor{ public void OperationImpl();}class ConcreteImplementorA implements Implementor{ public void OperationImpl(){ System.out.println("具體實現化(Concrete Implementor)角色被訪問" ); }abstract class Abstraction{ protected Implementor imple; protected Abstraction(Implementor imple){ this.imple=imple; } public abstract void Operation(); }class RefinedAbstraction extends Abstraction{ protected RefinedAbstraction(Implementor imple){ super(imple); } public void Operation(){ System.out.println("擴展抽象化(Refined Abstraction)角色被訪問" ); imple.OperationImpl(); }}public class BridgeTest{ public static void main(String[] args){ Implementor imple=new ConcreteImplementorA(); Abstraction abs=new RefinedAbstraction(imple); abs.Operation(); }}擴展抽象化(Refined Abstraction)角色被訪問 具體實現化(Concrete Implementor)角色被訪問String sql = "具體要操作的sql語句"; Class.forName("驅動的名字"); PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(sql); while (rs.next()) { String uuid = rs.getString("uuid"); int age = rs.getInt(2); } rs.close(); pstmt.close(); conn.close();我們寫的應用程式,是面向JDBC的API在開發,這些接口就相當於橋接模式中的抽象部分的接口。JDBC的驅動程序實現了JDBC的API,驅動程序就相當於橋接模式中的具體實現部分。DriverManager來把它們橋接起來,從某個側面來看,DriverManager在這裡起到了類似於簡單工廠的功能。
該例子詳情可見:
https://www.jianshu.com/p/af6b1b27f638
介紹了廣義橋接模式和更多其他模式對比
相同點:
讓兩個東西配合工作,且和對象適配器模式一樣,都存在一個類調用另一個類。