博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式-Builder构建者模式
阅读量:7200 次
发布时间:2019-06-29

本文共 905 字,大约阅读时间需要 3 分钟。

hot3.png

个人理解

当对象的构造过程变得很复杂的时候,参数很多,通过构造函数会产生大量冗余代码,不好维护,而我们又不希望调用者通过set的方式来构造对象(封装,隐藏),因为这样很容易出问题,于是,可以把整个构造的过程封装在一个构造类里,可以通过构造类实现更加精细的构造,并且职责明确

意图

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

适用性

当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。

当构造过程必须允许被构造的对象有不同的表示时。

实现(java)

package com.zlf.pattern;public class BuliderDemo {  private int a; private int b;  private BuliderDemo(Builder builder){  this.a = builder.a;  this.b = builder.b; } public static class Builder{  private int a;  private int b;    public Builder(){     }  public Builder buildA(int a){   this.a = a;   return this;  }     public Builder buildB(int b){   this.b = b;   return this;  }     public BuliderDemo create(){   return new BuliderDemo(this);  }   }  public static void main(String[] args){  BuliderDemo test = new BuliderDemo.Builder().buildA(1).buildB(2).create();  System.err.println(test.a); } }

转载于:https://my.oschina.net/zhenglingfei/blog/409948

你可能感兴趣的文章
Create an Auto-Incrementing Sequence Field
查看>>
我的友情链接
查看>>
Flutter第六期 - ListView+GridView混合
查看>>
Servlet快速入门
查看>>
mysql性能测试工具之sysbench
查看>>
python获取类名函数名、脚本路径
查看>>
批处理:查找指定条件的文件复制到指定的目录中
查看>>
导致失败的8项行为习惯
查看>>
我的友情链接
查看>>
PVS7.6 Write Cache模式 “缓存到RAM并且溢出到硬盘” 环境RAM大小配置建议
查看>>
java 双色球×××小程序
查看>>
Exchange性能调优(下)
查看>>
清理MBR
查看>>
VC++结束进程
查看>>
BGP路径选择次序
查看>>
Shell练习-统计出每个IP的访问量有多少?
查看>>
apache的扩展模块安装
查看>>
CentOS7 64位小型操作系统的前期准备(XShell、网络、YUM源、EPEL源)
查看>>
Css3之基础-11 Css定位(定位概念 、定位方式)
查看>>
Java线程中yield与join方法的区别
查看>>