public interface Memory { public void addMemory();}
public class Memory6G implements Memory { @Override public void addMemory() { System.out.println("6G内存"); }}public class Memory8G implements Memory { @Override public void addMemory() { System.out.println("8G内存"); }}
public abstract class Phone { public Memory memory; public void setMemory(Memory memory) { this.memory = memory; } public abstract void buyPhone();}
public class HuaWei extends Phone { @Override public void buyPhone() { System.out.println("购买de华为手机-"); memory.addMemory(); }}public class XiaoMi extends Phone { @Override public void buyPhone() { System.out.println("购买de小米手机-"); memory.addMemory(); }}
public class BridgeContext { public static void main(String[] args) { Phone huaWei = new HuaWei(); huaWei.setMemory(new Memory6G()); huaWei.buyPhone(); huaWei.setMemory(new Memory8G()); huaWei.buyPhone(); Phone xiaomi = new XiaoMi(); xiaomi.setMemory(new Memory6G()); xiaomi.buyPhone(); xiaomi.setMemory(new Memory8G()); xiaomi.buyPhone(); }}