胖蔡说技术
随便扯扯

Java实现建造者模式

建造者模式(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结构体。

赞(0) 打赏
转载请附上原文出处链接:胖蔡说技术 » Java实现建造者模式
分享到: 更多 (0)

请小编喝杯咖啡~

支付宝扫一扫打赏

微信扫一扫打赏