设计模式学习--Builder

What

Builder:将一个复杂的对象的构建和表示分离,使得同样的构建过程可以创建不同的表示。

Why

Builder也是创建型模式的一种,它是一步一步的向导式的创建一个复杂的对象,Builder接口定义创建复杂对象的零部件,Director根据客户端端传入的builder按照一定的步骤创建完成复杂对象的创建。
Builder适用于比较复杂的对象的创建,该对象的创建有比较稳定的步骤或者比较稳定的“零件”,但是“零件”(步骤)内部的构建是复杂多变的。
设计模式书中Builder适用于如下情况:
1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
2、当构造过程必须允许被构造的对象有不同的表示时。

How

假设如下场景,需要构造一个汽车类,汽车有轮子,方向盘,发动机,不同品牌的汽车零件算法不同。以此为示例,使用builder模式实现。
汽车builder接口

public abstract class CarBuilder {

    protected Car car=null;

    public abstract void buildWheel();

    public abstract void buildEngine();

    public abstract void buildSteeringWheel();

    public Car getResult(){
        return car;
    }
}

Jeep汽车builder实现

public class JeepCarBuilder extends CarBuilder {

    @Override
    public void buildWheel() {
        System.out.println("construct jeep car wheel");
    }

    @Override
    public void buildEngine() {
        System.out.println("construct jeep car engine");
    }

    @Override
    public void buildSteeringWheel() {
        System.out.println("construct jeep car steering wheel");
    }
}

Chery汽车builder实现

public class CheryCarBuilder extends CarBuilder {

    @Override
    public void buildWheel() {
        System.out.println("construct chery car wheel");
    }

    @Override
    public void buildEngine() {
        System.out.println("construct chery car engine");
    }

    @Override
    public void buildSteeringWheel() {
        System.out.println("construct chery steering wheel");
    }
}

Director实现

public class CarDirector {

    private CarBuilder builder;

    public CarDirector(CarBuilder builder){
        this.builder=builder;
    }

    public Car construct(){
        builder.buildSteeringWheel();
        builder.buildEngine();
        builder.buildWheel();
        return builder.getResult();
    }
}

Client调用

public class App {

    public static void main( String[] args ){

        CarBuilder builder=new JeepCarBuilder();
        CarDirector director=new CarDirector(builder);
        director.construct();

        CarBuilder builder1=new CheryCarBuilder();
        CarDirector director1=new CarDirector(builder1);
        director1.construct();
    }
}

本示例类图如下:


Discuss

Builder模式的好处是使建造代码与表示代码分离,如果需要增加系列产品,只需要增加相应的builder接口实现即可,如果需要改变产品的表示,也只需修改builder接口的实现即可。
在jdk中,StringBuilder是一个简易版的builder模式,其中StringBuilder充当了builder以及construct的角色,Client充当了Director。
类图如下(来自happyhippy's Blog):

Reference

1、Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?

转载于:https://www.cnblogs.com/JerryWang1991/p/3936381.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: bootstrap-form-builder-gh-pages 是一个基于 Bootstrap 框架的在线表单创建工具。它通过简化表单构建的过程,使用户能够轻松地设计和定制各种型的表单。 该工具提供了一个直观的用户界面,用户可以使用拖放功能来添加不同的表单元素,例如文本框、下拉菜单、单选框、复选框等。用户还可以对每个表单元素进行自定义设置,包括大小、样式、验证规则等。 使用 bootstrap-form-builder-gh-pages,用户无需编写任何代码,即可创建漂亮且功能丰富的表单。该工具生成的表单代码使用了 Bootstrap 的 CSS ,确保表单在各种设备和浏览器上都具有良好的兼容性和可响应性。 另外,bootstrap-form-builder-gh-pages 还支持表单的导出和导入功能。用户可以将设计好的表单导出为 HTML 文件,然后在自己的网站中使用。同时,用户也可以导入已有的表单代码,进行编辑和修改。 总之,bootstrap-form-builder-gh-pages 是一个简单易用、功能强大的表单构建工具,适用于需要为网站或应用程序创建各种型表单的用户。不仅可以节省时间和精力,还能够以专业的方式设计和定制表单,提升用户体验。 ### 回答2: bootstrap-form-builder-gh-pages 是一个基于 Bootstrap 框架的表单生成器的 GitHub 页面。 Bootstrap 是一个开源的前端框架,提供了丰富的 CSS 和 JavaScript 组件,用于构建响应式和美观的网页。而 Bootstrap Form Builder一个基于 Bootstrap 的工具,用于快速生成各种型的表单。 GitHub 是一个全球最大的代码托管平台,提供了版本控制和协作功能,让开发人员方便地共享和管理代码。 bootstrap-form-builder-gh-pages 是一个托管在 GitHub 上的页面,其中包含了 Bootstrap Form Builder 的源代码和相关资源。这个页面能够被访问和浏览,开发者可以在上面了解和使用该表单生成器。 通过访问 bootstrap-form-builder-gh-pages 页面,开发者可以浏览生成器的界面和功能,并且可以直接使用或下载源代码进行定制开发。页面上可能还包含一些说明文档、示例和演示等,帮助开发者更好地理解和使用该表单生成器。 通过将项目托管在 GitHub,开发者可以方便地与其他开发者进行协作,共同改进和维护这个表单生成器。他们可以提交问题、建议和贡献代码,共同促进该项目的发展。 总之,bootstrap-form-builder-gh-pages 是一个使用 Bootstrap 框架构建的表单生成器的 GitHub 页面,提供了方便的界面和功能,帮助开发者快速生成各种型的表单,并且通过 GitHub 的协作功能,可以与其他开发者一起改进和维护该项目。 ### 回答3: bootstrap-form-builder-gh-pages是一个基于Bootstrap框架的表单构建器。Bootstrap是一个非常流行的前端开发框架,它提供了一套美观,易于使用和响应式的组件和样式,使得网页开发变得更加快速和简单。 bootstrap-form-builder-gh-pages是一个利用Bootstrap框架开发的工具,用于帮助开发人员更加轻松地创建表单。通过这个工具,开发人员可以通过简单而直观的界面来构建各种表单,如注册表单、联系表单等。该工具提供了丰富的表单元素选项,包括输入框、下拉菜单、单选框、复选框等,以及表单验证和交互功能。 使用bootstrap-form-builder-gh-pages,开发人员可以通过简单的拖放和配置操作来创建自定义表单。他们可以选择需要的表单元素,设定元素的属性和样式,然后生成对应的HTML代码。生成的代码可以直接复制到项目中使用,从而加速表单的开发过程。 此外,bootstrap-form-builder-gh-pages还提供了一些额外的功能和选项,如表单的响应式布局,使得表单在不同设备上都能够自适应地展示和操作。它还支持表单验证,确保用户输入的准确性和完整性。开发人员可以自定义验证规则和错误提示,以满足具体的需求。 总之,bootstrap-form-builder-gh-pages是一个便捷而强大的工具,它利用Bootstrap框架的特性,帮助开发人员快速构建美观、易用的表单,提高开发效率。无论是初学者还是有经验的开发人员,都可以受益于这个工具,轻松地创建出专业水平的表单。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值