builder模式-积木系列

代码高效的表达意图,是优秀代码的基本标准,所以在刚刚写代码的时候我们总是被教育方法的名字,变量字段的名字要尽可能表达出在程序中的含义。

在《重构和模式》中提到的creation,就是讲构造实例的方式封装变为可以表达含义的方法提供给客户端使用,从而保证了在阅读客户端代码时,可以清洗的明白代码在做什么,而不需要进入构造方法中看创建的逻辑。

创建的模式中有工厂方法 和 builder模式。无论用什么方式,我们想达到的目的就是讲构造过程和使用过程分离。

builder类图:

时间: 2024-10-18 09:24:12

builder模式-积木系列的相关文章

菜鸟学设计模式系列笔记之建造者模式(Builder模式)

提供一种"封装机制"来隔离出"复杂对象的各个部分"的变化. 从而保持系统中的"稳定构建算法"不随需求变化而变化.----建造者模式 建造模式是对象的创建模式 建造模式可以将一个产品的内部表象与产品的生成过程分割开来, 从而可以是一个建造过程生成具有不同的内部表象的产品对象. Intent : 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 Motivation: 在复杂对象的构造过程中,允许同样的构造过程能够加入新的被

Joshua Bloch错了? ——适当改变你的Builder模式实现

注:这一系列都是小品文.它们偏重的并不是如何实现模式,而是一系列在模式实现,使用等众多方面绝对值得思考的问题.如果您仅仅希望知道一个模式该如何实现,那么整个系列都会让您失望.如果您希望更深入地了解各个模式的常用法,并对各个模式进行深入地思考,那么希望您能喜欢这一系列文章. 在昏黄的灯光下,我开始了晚间阅读.之所以有这个习惯的主要原因还是因为我的睡眠一直不是很好.所以我逐渐养成了在晚九点以后看一会儿技术书籍以辅助睡眠的习惯. 今天随手拿起的是Effective Java的英文第二版.说实话,由于已

Creational模式之Builder模式

1.意图 将一个复杂对象的构建与它表示分离,使得同样的构建过程可以创建不同的表示. 2.别名 无 3.动机 一个RTF(Rich Text Format)文档交换格式的阅读器应能将RTF转换为多种正文格式.该阅读器可以讲RTF文档转化成不同ASCII文本或转换成一个能以交互方式编辑的正文窗口组件.但问题在于可能转换的数目是无限的.因此要能够很容易实现新的转换的增加,同时却不改变RTF阅读器. 4.适用性 以下情况使用Builder模式: 当创建复杂对象的算法应该独立于该对象的组成部分以及他们的装

使用Builder模式进行美化代码

在很多情况下我们需要定义一个Class且里面有很多成员变量的时候通常我们的写法是 class Person { private String name; private int age; private int sex; private int high; private int face; private int weight; private int foot; public Person() {...} public Person(String name) {...} ... public

Builder模式详解及其在Android开发中的应用

一.引言 在Android开发中,采用Builder模式的代码随处可见,比如说Android系统对话框AlertDialog的使用或者是Android中的通知栏(Notification)的使用,又比如说在一些常用的第三方库中也随处可见其踪迹,比如说一些常用的网络请求库如OkHttp或者是retrofit,又或者是图片加载库Glide中也不缺乏它的应用. 为什么Builder模式在Android或是Java开发中这么火呢?因为它相较于构造函数或者是Get/Set方法,它的灵活性和封装性上都比较有

Builder模式(建造者模式)

在设计模式中对Builder模式的定义是用于构建复杂对象的一种模式,所构建的对象往往需要多步初始化或赋值才能完成.那么,在实际的开发过程中,我们哪些地方适合用到Builder模式呢?其中使用Builder模式来替代多参数构造函数是一个比较好的实践法则. 我们常常会面临编写一个这样的实现类(假设类名叫DoDoContact),这个类拥有多个构造函数, DoDoContact(String name); DoDoContact(String name, int age); DoDoContact(S

【代码优化】构造器参数繁多时候,考虑使用builder模式

静态工厂和构造器有个共同的局限性:都不能很好的扩展到大量的可选参数. 1.对于多个可选参数的构造器,我们都习惯采用重叠构造器模式,比如一个参数的构造器调用2个参数的构造器,     2个参数的构造器调用3个参数的,以此类推. public class User{ private int id: private String name: private String age: private String sex: public User(int id){ this(id,null); } pub

关于Builder模式

builder模式是什么? builder模式是设计模式的一种,从名词方面来解析就是构建. builder模式优势在哪里?它比javaBean模式具有更强的灵活性. 实例分析javaBean与builder模式构建实例比较 package system.info;/* * 以业务类型类作为样板,包含javaBean和Builder两种构建方式 */public class TBusinessType {      //javaBean 模式 start    private Long id;  

设计模式初学者笔记:Builder模式

[作者:byeyear    Email:[email protected]    首发:cnblogs    转载请注明] 在本文的开头,先森森的鄙视下自己……将Builder模式反反复复读了七八遍,才敢说自己对其有了初步的了解.这比花在Abstract Factory上的时间长多了.如果GoF将Builder模式放在第一个讲,估计我就会把这本书归结成天书直接扔一边了. Builder模式的关键在于,将“要做什么”与“做出来”分离,将“如何装配”与“完成装配”分离: Director知道“要做