欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

抽象工厂模式 - 抽象工厂模式的基本用法。

最编程 2024-05-05 15:38:45
...

创建抽象产品

创建抽象产品角色,工厂类所创建的产品的父类,封装了产品对象的公共方法

public interface IWheel {
    void create(String name);
}

public interface IFrame {
    void create(String name);
}

创建具体产品

创建一系列相关的产品对象,如创建BMCar产品族,扩展一系列相关产品对象。

public class CarWheel implements IWheel{
    @Override
    public void create(String name) {
        System.out.println("制造"+name+"车轮");
    }
}

public class CarFrame implements IFrame {
    @Override
    public void create(String name) {
        System.out.println("制造"+name+"车架");
    }
}

创建抽象工厂

创建抽象工厂,提供一个创建一系列相关或相互依赖对象的接口

public abstract class CarFactory {
    /**
     * 制造车轮产品
     */
   protected abstract  IWheel createWheel();

    /**
     * 制造车架产品
     */
   protected abstract  IFrame createFrame();
}

创建具体工厂

创建具体产品工厂,提供一个产品类的库

public class BMCarFactory extends CarFactory {
    @Override
    protected IWheel createWheel() {
        return new CarWheel();
    }

    @Override
    protected IFrame createFrame() {
        return new CarFrame();
    }
}


public class ADCarFactory extends CarFactory {
    @Override
    protected IWheel createWheel() {
        return new CarWheel();
    }

    @Override
    protected IFrame createFrame() {
        return new CarFrame();
    }
}

客户端执行

    public static void main(String[] args) {
        BMCarFactory bmCarFactory = new BMCarFactory();
        bmCarFactory.createFrame().create("BM");
        bmCarFactory.createWheel().create("BM");

        ADCarFactory adCarFactory = new ADCarFactory();
        adCarFactory.createFrame().create("AD");
        adCarFactory.createWheel().create("AD");
    }
制造BM车架
制造BM车轮
制造AD车架
制造AD车轮

推荐阅读