java 橋接模式
阿新 • • 發佈:2018-12-28
橋接(Bridge)是用於把抽象化與實現化解耦,使得二者可以獨立變化,它通過提供抽象化和實現化之間的橋接結構,來實現二者的解耦。
1)介面卡:改變已有的兩個介面,讓他們相容。
2)橋接模式:分離抽象化和實現,使兩者的介面可以不同,目的是分離。
/** * @author liusongwei * @Title: Car * @ProjectName demohystrix * @Description: 定義一個交通工具的介面 * @date 2018/12/2815:58 */ public interface Traffic { void byontake(String name); }
/** * @author liusongwei * @Title: Plane * @ProjectName demohystrix * @Description: 交通工具之一飛機 * @date 2018/12/2816:02 */ public class Plane implements Traffic { @Override public void byontake(String name) { System.out.println(name + "乘坐飛機去少林寺"); } }
/** * @author liusongwei * @Title: Train * @ProjectName demohystrix * @Description: 交通工具之一火車 * @date 2018/12/2816:00*/ public class Train implements Traffic { @Override public void byontake(String name) { System.out.println(name + "乘坐火車去少林寺"); } }
/** * @author liusongwei * @Title: Whois * @ProjectName demohystrix * @Description: 定義一個抽象類誰乘坐交通工具 * @date 2018/12/2816:03 */ public abstract classWhois { private Traffic traffic; public Whois(Traffic traffic){ this.traffic = traffic; } public void WhereGoTo(String name){ traffic.byontake(name); } }
/** * @author liusongwei * @Title: Man * @ProjectName demohystrix * @Description: 人類 * @date 2018/12/2816:06 */ public class Man extends Whois { public Man(Traffic traffic) { super(traffic); } }
/** * @author liusongwei * @Title: Demo * @ProjectName demohystrix * @Description: TODO * @date 2018/12/2816:07 */ public class Demo { public static void main(String[] args){ Whois whois = new Man(new Train()); whois.WhereGoTo("張三"); Whois whois2 = new Man(new Plane()); whois2.WhereGoTo("李四"); } }