实现设计模式组件库

76 阅读1分钟

组件地址

<dependency>
  <groupId>org.opengoofy.index12306</groupId>
  <artifactId>index12306-designpattern-spring-boot-starter</artifactId>
  <version>${project.version}</version>
</dependency>

组件功能

image.png

封装构建者模式

构建者模式相对简单,仅需要提供一个抽象接口即可。构建者相关的特性均在实现类中完成

package org.opengoofy.index12306.framework.starter.designpattern.builder;

import java.io.Serializable;

/**
 * Builder 模式抽象接口
 *
 */
public interface Builder<T> extends Serializable {

    /**
     * 构建方法
     *
     * @return 构建后的对象
     */
    T build();
}

Hutool如何使用Builder模式创建线程池

Builder 模式应用场景

由于线程池创建时构造器函数过多以及属性之间存在依赖关系和约束条件,所以非常适合使用构建者模式

image.png

Hutool Builder 创建线程池

Hutool 线程池相关使用 Builder 设计模式有两处,一个是创建线程池,另一个是创建线程工厂,我们重点围绕线程池说

创建 Hutool 线程池比较简单且优雅,笔者较喜欢这种链式风格,所以抽象公共业务时都会使用此模式,如图所示

image.png

image.png

image.png

image.png

总结:创建接口,实现接口重写build方法,build方法里调用另一个重载的用于管理属性间约束的build方法,即可完成创建

封装责任链模式(详见另一篇文章)

封装策略模式

为什么需要策略模式

image.png

策略模式示例

image.png

image.png

真实应用场景

image.png

image.png