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();
    }

}

运行结果:

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值