介绍
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
如:大都市中林立着许多高楼大厦,这些高楼大厦都是具有建筑结构的大型建筑。通常,建造和构建这种具有建筑结构的大型物体在英文中称为Build
。
在建造大楼时,需要先打牢地基,搭建框架,然后自下而上地一层一层盖起来。通常,在建造这种具有复杂结构的物体时,很难一气呵成。我们需要首先建造组成这个物体的各个部分,然后分阶段将它们组装起来。
开始
架构图
样例一
定义生成器
public interface IBuilder {
/**
* 打开
*/
void open();
/**
* 建造一个 标题
*
* @param str
*/
void buildTitle(String str);
/**
* 生成托盘的父类
*
* @param str
*/
void buildString(String str);
/**
* 建造一个托盘
*
* @param myDomainList
*/
void buildTray(List<MyDomain> myDomainList);
/**
* 释放,结束
*/
void close();
}
定义具体生成器(HTML格式、markdown格式)
实体类
@Data
public class MyDomain implements Serializable {
/**
* 链接
*/
private String url;
/**
* 内容
*/
private String content;
}
HTML格式生成器
@Service
@Slf4j
public class HtmlBuilder implements IBuilder {
@Override