1. 程式人生 > >java 橋接模式

java 橋接模式

橋接(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 class
Whois { 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("李四");

    }
}