设计模式-桥接模式

空客(Airbus)、波音(Boeing)和麦道(McDonnell-Douglas)都是飞机制造商,它们都生产载客飞机(Passenger Plane)和载货飞机(Cargo Plane)。现需要设计一个系统,描述这些飞机制造商以及它们所制造的飞机种类。绘制类图并编程模拟实现。

类图:


实现代码:

抽象类Productor

package BridgePattern;

public abstract class Productor {

    protected   Plane plane;

    public void setPlane(Plane plane) {

        this.plane = plane;

    }

    public abstract void product();

}

扩充抽象类AirbusPro 

package BridgePattern;

public class AirbusPro extends Productor {

    @Override

    public void product() {

        System.out.println("Airbus compary");

        plane.createPlane();

    }

}

扩充抽象类McDonnellPro 

package BridgePattern;

public class McDonnellPro extends Productor {

    @Override

    public void product() {

        System.out.println("McDonnell company");

        plane.createPlane();

    }

}

扩充抽象类BoeingPro 

package BridgePattern;

public class BoeingPro extends Productor {

    @Override

    public void product() {

        System.out.println("Boeing company");

        plane.createPlane();

    }

}

实现类接口Plane 

package BridgePattern;

public interface Plane {

    public void createPlane();

}

具体实现类PassengerPlane ;

package BridgePattern;

public class PassengerPlane implements Plane {

    @Override

    public void createPlane() {

        System.out.println("bulid a PassengerPlane");

    }

}

具体实现类CargoPlane ;

package BridgePattern;

public class CargoPlane implements Plane {

    @Override

    public void createPlane() {

        System.out.println("build a CargoPlane");

    }

}

客户端类Client (没使用配置文件):

package BridgePattern;

public class Client {

    public static void main(String[] args) {

        Productor productor;

        CargoPlane cargoPlane = new CargoPlane();

       // PassengerPlane paplane =new PassengerPlane();

        productor = new AirbusPro();

        productor.setPlane(cargoPlane);

        productor.product();

    }

}



猜你喜欢

转载自blog.csdn.net/qq_35522904/article/details/80055969