zoukankan      html  css  js  c++  java
  • 静态与动态工厂

    实例

    /**
     * 静态工厂
     * @date 2020.04.01
     */
    public class ExternalBeanStaticFactory {
        private static OkHttpClient OkHttpClient;
        public static OkHttpClient getInstance() {
            if (OkHttpClient == null) {
                OkHttpClient = new OkHttpClient.Builder().build();
            }
            return OkHttpClient;
        }
    }
    /**
     * 动态工厂
     * @author cxy
     * @date 2020.04.01
     */
    public class ExternalBeanFactory {
        private OkHttpClient OkHttpClient;
        public OkHttpClient getInstance() {
            if (OkHttpClient == null) {
                OkHttpClient = new OkHttpClient.Builder().build();
            }
            return OkHttpClient;
        }
    }
    <!-- 静态工厂 -->
    <bean class="net.web.ExternalBeanStaticFactory" factory-method="getInstance" id="okHttpClientStatic"></bean>
    
    <!-- 动态工厂 -->
    <bean class="net.web.ExternalBeanFactory" id="ExternalBeanFactory"/>
    <bean class="okhttp3.OkHttpClient" factory-bean="ExternalBeanFactory" factory-method="getInstance" id="okHttpClient"></bean>

    可以看到,静态工厂的方法多了 static 关键字,而动态工厂就对了个bean 配置,看到这里我们来总结一下:

    • 逻辑代码和配置方式的区别(这也是CSDN看到最多的关于这两者的解释)
    • 动态工厂需要更多的内存(达到一定的并发)
  • 相关阅读:
    自动化基础知识
    第一章Google软件测试介绍
    《将博客搬至CSDN》
    二叉树的先序遍历和中序遍历分析(递归)
    java 部分快捷功能
    toString
    自增自减运算符剖析
    二进制数的直接表示
    编程中的&&和||
    npm 镜像地址设置
  • 原文地址:https://www.cnblogs.com/QianYue111/p/13607790.html
Copyright © 2011-2022 走看看