代码示例彻底理解构造者模式及其在Hibernate中的引用

详解构造者模式及Hibernate中的Builder

定义:建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。
使用目的:为了灵活构造复杂对象,该对象会有多个成员变量,在外部调用的时候,不需要或者不方便一次性创建出所有的成员变量,在这种情况下,使用多个构造方法去构建对象,很难维护,这时候Builder设计模式解决这个问题,进行buid()方法中创建对象,并且将builder传入,该builder中,维护了传入对象的成员变量。
uml建模图:
uml建模图
使用场景:
多个部件或者零件,都可以装配到一个对象中,但是产生的运行结果又相同。
产品类非常复杂,或者产品类中调用顺序不同产生了不同的作用。
初始化一个对象特别复杂,如使用多个构造方法,或者说有很多参数,并且都有默认值时。
核心类:
以组装一台计算机为主,主要进行组装主机,设置操作系统,设置显示器。
(1) 抽象产品类 computer。
(2) Builder 抽象 Builder,规范产品的组建,一般是由子类实现具体的组建过程。
(3)MacbookBuilder 具体的Builder类,具体的创建对象的类。
(4) Directror 统一组建过程。

Demo:

计算机抽象类:
在这里插入图片描述
具体产品类Macbook
在这里插入图片描述
抽象builder
在这里插入图片描述
具体的builder
在这里插入图片描述
Director类,负责具体的构造Computer
在这里插入图片描述
具体使用
在这里插入图片描述

Hibernate中的Builder

2.1 BootstrapServiceRegistryBuilder
在Hibernate中老版本中用的一个Builder应该就是BootstrapServiceRegistryBuilder,它负责创建BootstrapServiceRegistry(基础服务注册中心):
在这里插入图片描述
BootstrapServiceRegistry中注册的了固定的三个基础服务ClassLoaderService(类加载器服务)、StrategySelector(决策选择器)、IntegratorService(集成服务),其中StrategySelector又是由对应的StrategySelectorBuilder来创建。
在这里插入图片描述
2.2 StandardServiceRegistryBuilder
在这里插入图片描述
StandardServiceRegistryBuilder用于创建StandardServiceRegistry(标准服务注册中心),这里将注册Hibernate中需要用到的大量服务
在这里插入图片描述
配置文件是由这个StandardServiceRegistryBuilder来装载的原因
这正是Hibernate里面Builder模式的主要作用,Builder在创建对象之前需要先获取对象创建参数,然后执行参数判断逻辑,最终创建出目标对象,而此处StandardServiceRegistryBuilder的参数来源就是hibernate配置文件,因此用它来装载配置文件解析其中的参数然后才能创建目标对象。


版权声明:本文为qq_45872668原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。