zoukankan      html  css  js  c++  java
  • 设计模式——工厂模式

    工厂模式有3种,简单工厂模式,工厂方法模式和抽象工厂模式。其中简单工厂模式不属于23中GOF模式中的一种。简单工厂模式和工厂方法模式的区别在于工厂方法模式 将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口。这样在修改产品的时候不会在工厂类上面进行代码修改,符合开闭原则。工厂方法模式和抽象工厂模式的区别是,抽象工厂模式在工厂接口里面可以定义多个产品

    简单工厂模式详解

    工厂方法模式详解(另附简单工厂的死亡之路)

    抽象工厂模式详解

    使用场景:

    工厂模式是一个用于实例化对象的模式,是用工厂方法代替new操作的一种方式。工厂模式在Java项目中到处都是,因为工厂模式就相当于创建实例对象的new,如在我们的系统中经常需要记日志,如果创建logger实例时所做的初始化工作可能是很长一段代码,可能要初始化、赋值、查询数据等等,则会导致代码臃肿而难看。

    在java web项目开发过程中,经常会看到如下配置文件:

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="mapperLocations" value="classpath*:com/**/*Mapper*.xml" /> 
        <property name="dataSource" ref="dataSource" />
        <property name="typeAliasesPackage" value="com.alibaba.***.dal" />
    </bean>

    bean的name属性sqlSessionFactory,我们知道Sqlsession对应着一次数据库会话。由于数据库回话不是永久的,因此Sqlsession的生命周期也不应该是永久的,相反,在你每次访问数据库时都需要创建它(当然并不是说在Sqlsession里只能执行一次sql,你可以执行多次,当一旦关闭了Sqlsession就需要重新创建它)。创建Sqlsession的地方只有一个,那就是SqlsessionFactory的openSession方法,这里也用到了工厂模式。

  • 相关阅读:
    找一个写心的地方!
    找一个写心的地方!
    CentOS 6.4最小安装
    poj 3013 Big Christmas Tree 最短路 dijkstra算法
    poj 2449 Remmarguts' Date 第K短路
    CCNUOJ 1010 The Almost Lucky Numbers
    Java容器学习心得Set容器
    CCNUOJ 1027 教你前缀
    我的第一个C++程序( C++语言程序设计项目任务书 )
    CCNUOJ 1031 数组操作(树状数组)
  • 原文地址:https://www.cnblogs.com/yang-lq/p/7656370.html
Copyright © 2011-2022 走看看