JAVA 23种设计设计模式---工厂模式(抽象工厂模式)

抽象工厂模式统称为工厂模式,一搬说工厂模式时都指的是抽象工厂模式。

介绍如下:

案列结构:

代码结构:

轿车:

package com.zxf.absfactory;
//轿车抽象
public interface Sedan {
    //启动轿车的方法
    public void run();

}

卡车:

package com.zxf.absfactory;
//卡车抽象
public interface Trunk_A {
    //启动卡车的方法
    public void run();

}

工厂:

package com.zxf.absfactory;
//抽象工厂
public interface CarFactory {
    //生产卡车
    public Trunk_A produceTrunk();
    
    //生产轿车
    public Sedan produceSedan();

}

宝马工厂:

package com.zxf.absfactory;
//生产宝马品牌的车
public class BmwFactory implements CarFactory {

    @Override
    public Trunk_A produceTrunk() {
        // TODO Auto-generated method stub
        return new BmwTrunk();
    }

    @Override
    public Sedan produceSedan() {
        // TODO Auto-generated method stub
        return new BmwSedan();
    }

}

宝马轿车:

package com.zxf.absfactory;

public class BmwSedan implements Sedan {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println("宝马轿车启动!");
    }
}

宝马卡车:

package com.zxf.absfactory;

public class BmwTrunk implements Trunk_A {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println("宝马卡车启动!");

    }

}

奥迪工厂:

package com.zxf.absfactory;
//生产奥迪品牌的车
public class AodiFactory implements CarFactory {

    @Override
    public Trunk_A produceTrunk() {
        // TODO Auto-generated method stub
        return new AodiTrunk();
    }

    @Override
    public Sedan produceSedan() {
        // TODO Auto-generated method stub
        return new AodiSedan();
    }

}

奥迪轿车:

package com.zxf.absfactory;

public class AodiSedan implements Sedan {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println("奥迪轿车启动!");

    }

}

奥迪卡车:

package com.zxf.absfactory;

public class AodiTrunk implements Trunk_A {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println("奥迪卡车启动!");

    }

}

顾客(测试类)

package com.zxf.absfactory;

public class Customer {
    public static void main(String[] args) {
        //宝马
        CarFactory bm = new BmwFactory();
        bm.produceSedan().run();
        bm.produceTrunk().run();
        //奥迪
        AodiFactory ad = new AodiFactory();
        ad.produceSedan().run();
        ad.produceTrunk().run();
    }

}

运行结果:

至此,工厂模式已全部结束!!

猜你喜欢

转载自blog.csdn.net/Websphere_zxf/article/details/83109954