建造者模式(Builder Pattern
)又称之为生成器模式,它可以将将一个对象构建拆解,实现复杂逻辑的拆分实现,优化实现方式。以构建Html结构化数据为例,可以将其实现分为如下几个步骤:
- 创建建造者实现接口
- 构建装配实体类,填充建造实现必须参数
- 创建建造实现类,实现接口抽象方法
- 创建建造者类,组装建造实现方法
根据如上的介绍,我们来通过组装一个HTML
结构化数据,来简单了解如何使用建造者模式实现功能开发。
创建抽象类或者接口
首先创建一个抽象类或者一个抽象方法,确定组件构建模块方法:
public interface Builder {
void buildHead();
void buildHeader();
void buildBody();
void buildFooter();
Html buildHtml();
}
创建产品类
通过构建HTML类来定义基础的HTML构成:
public class Html {
private String head;
private String header;
private String footer;
public String getHead(){
return head;
}
public void setHead(String head) {
this.head = head;
}
public String getHeader(){
return header;
}
public void setHeader(String header) {
this.header = header;
}
public String getFooter() {
return footer;
}
public void setFooter(String footer) {
this.footer = footer;
}
}
构建实现类创建
工厂模式将具体的实现交由单独的实现类去实现:
public class HtmlBuilder implements Builder {
Html html;
public HtmlBuilder() {
html = new Html();
}
public void buildHead(){
html.setHead("<head></head>");
}
public void buildHeader(){
html.setHeader("<header><nav></nav></header>");
}
public void buildBody(){
html.setHeader("<body></body>");
}
public void buildFooter(){
html.setHeader("<footer></footer>");
}
public Html buildHtml(){
return html;
}
}
创建建造者类
建造者类主要负责通过实现类将其拼装组合,从而实现一个完整的产品结构。代码如下:
public class HtmlCreator{
public Html build(Builder builder) {
builder.buildHead();
builder.buildBody();
builder.buildHeader();
builder.buildFooter();
return builder.buildHtml();
}
}
使用
使用方式如下:
public calss DesignTest {
public static void main(String[] args) {
HtmlCreator creator = new HtmlCreator();
Html html = creator.build(new HtmlBuilder());
creator.buildHead();
creator.buildHeader();
creator.buildFooter();
}
}
注:具体的
HTML
结构构造需要配合其他模式一起实现,这个仅仅介绍如何通过建造模式拼接HTML
结构体。