Java適配器模式和橋接模式都是面向對象編程中常見的設計模式,本篇文章將對這兩種模式進行詳細介紹。
適配器模式
適配器模式是一種將一個類的接口轉換成客戶希望的另一個接口的設計模式。
public interface Target { void execute(); } public class Adaptee { public void doSomething() { System.out.println("doSomething..."); } } public class Adapter implements Target { private Adaptee adaptee; public Adapter(Adaptee adaptee) { this.adaptee = adaptee; } public void execute() { adaptee.doSomething(); } } public class Client { public static void main(String[] args) { Adaptee adaptee = new Adaptee(); Target target = new Adapter(adaptee); target.execute(); } }
在適配器模式中,我們通過一個中間的適配器類將一個原始類的接口適配成客戶端期望的接口,這樣就可以在不改變原始類接口的情況下,讓客戶端使用該類。
橋接模式
橋接模式是一種同時將抽象部分與它的實現部分分離開來的設計模式。
public interface Implementor { void operationImp(); } public class ConcreteImplementorA implements Implementor { public void operationImp() { System.out.println("ConcreteImplementorA operation"); } } public class ConcreteImplementorB implements Implementor { public void operationImp() { System.out.println("ConcreteImplementorB operation"); } } public abstract class Abstraction { protected Implementor implementor; public Abstraction(Implementor implementor) { this.implementor = implementor; } public abstract void operation(); } public class RefinedAbstraction extends Abstraction { public RefinedAbstraction(Implementor implementor) { super(implementor); } public void operation() { System.out.println("RefinedAbstraction operation"); implementor.operationImp(); } } public class Client { public static void main(String[] args) { Implementor implementor = new ConcreteImplementorA(); Abstraction abstraction = new RefinedAbstraction(implementor); abstraction.operation(); } }
在橋接模式中,我們將一個抽象部分與其實現部分分離開來,使得它們可以相互獨立地變化。這樣,抽象與實現部分可以各自擴展,不會相互影響。
適配器模式和橋接模式都是非常常用的設計模式,在實際開發中都有廣泛的應用。