• 抽象工厂模式(Absraact Factory)介绍与实现


    创建一个IProduct,后面模拟业务时要用到

    package com.xiawei.factory;

    public class IProduct {

    private String productNo = "";
    }

    =====================================================

    package com.xiawei.factory;
    /**
    * 规范工厂接口 </p>
    */
    //创建一个所有工厂的规范接口,后面所有的工厂类都要来实现这个接口,并且要实现其方法.
    //这样只需向用户提供这个工厂接口就行.
    public interface StandardFactory {

    public IProduct createProduct(String productNo);
    }

    ======================================================

    package com.xiawei.factory;

    //定义具体工厂A类

    public class ProductFactoryA implements StandardFactory{

    @Override
    public IProduct createProduct(String productNo) {
    //模拟工厂1生成产品对象规则
    IProduct product = new IProduct();
    return product;
    }

    }

    ======================================================

    package com.xiawei.factory;

    //定义具体工厂B类

    public class ProductFactoryB implements StandardFactory{

    @Override
    public IProduct createProduct(String productNo) {
    //模拟工厂B生它的产品对象规则
    IProduct product = new IProduct();
    return product;
    }

    }

    =================================================

    package com.xiawei.factory;
    //其实所谓抽象工厂,就是在普通工厂类外面套上了一层可选择的工厂类
    //在这之前给他们规定一个统一的接口,然后让所有的工厂类都出实现它
    //并实现它的接方法
    /**
    * 创建抽象工厂类 </p>
    * 这个工厂类不具体指定返回的工厂对象,条件满足那个就返回那个对象
    */
    public class ProductFactory implements StandardFactory{

    @Override
    public IProduct createProduct(String productNo) {
    //获取产品编号
    char chr = productNo.charAt(0);
    //定义一个规范工厂类型的变量
    StandardFactory factory = null;
    //提供产品编号,判断需要获取那个具体工厂对象
    if(chr == '1'){
    factory = new ProductFactoryA();
    }else if(chr == '2'){
    factory = new ProductFactoryB();
    }

    if(factory != null){
    return factory.createProduct(productNo);
    }
    return null;
    }

    }

  • 相关阅读:
    Java jni字符串转换
    Python读取PE文件(exe/dll)中的时间戳
    深度学习word embedding猜测性别初探
    闪存内容汇编(截止20170405)
    如何自动化安装字体(命令行批量)
    如何分析进程的内存占用问题
    Python print报ascii编码异常的靠谱解决办法
    Linux界面自动化测试框架不完全汇总
    Qt实现同步(阻塞式)http get等网络访问操作
    基于第三方开源库的OPC服务器开发指南(4)——后记:与另一个开源库opc workshop库相关的问题
  • 原文地址:https://www.cnblogs.com/xiaweicn/p/8684161.html
Copyright © 2020-2023  润新知