【设计模式学习笔记】工厂模式

简单工厂:
将创建类的代码剥离出来,放到一个类里面,通过实例化这个类去获取想要的对象。
先将多个类的对象存储到map里,然后通过get方法从里面获取

工厂方法:
基于接口去实现多个不同的方法,类继承自接口,然后重写方法
类里面再创建一个静态类,静态类里从父类获取对应的方法的逻辑,父类里时多种不同的实现。

抽象工厂:
一个接口里面有两个方法
类继承自接口,重写在接口里定义的两个方法

不用if else的话,就通过一个包装在外面的类去调用。
不同的实现事先存起来,通过名字去获取

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

1, 配置解析
构造函数
构造函数所需的参数

2, 对象创建
反射:在程序的运行过程中动态的加载类、创建对象。
从配置文件读取信息,然后创建对象就是反射?
定义一个接口
类继承这个接口,做具体的实现
在这个实现类的构造函数里,创建其他类的对象,然后使用传入的参数做初始化。
重写一个接口里定义的方法,在方法里返回构造函数里创建好的对象。

3, 对象的生命周期管理
(1)每次都返回新创建的对象
(2)返回一个单例对象
(3)是否支持懒加载

  • 是,对象在真正被使用的时候才创建
  • 否,对象在一开始就创建

(4)setup() and teardown()

示例:
class BeansFactory()

  • addBeanDefinitions()
    将解析出来的东西放到这个类里面
    如果是单例类并且非懒加载,则直接创建对象
  • getBean()
    先获取BeanDefinition
    然后调用createBean()创建对象
  • createBean()
    如果是单例,并且已经创建好了,则直接返回之前创建好的对象
    如果不是单例,则读取BeanDefinition里的信息创建对象
    创建好以后,如果是单例,则存起来,然后返回对象
    创建好以后,如果非单例,则直接返回对象
posted @ 2022-05-15 17:53  Shengjie  阅读(28)  评论(0编辑  收藏  举报