`

《有些模式》- Builder

 
阅读更多

 或许你已经看惯了javabean和层叠构造.

 

 

/**
 * Builder模式
 * @author Macrotea
 *
 */
public class ManFacts {
	private String name;
	private int age;
	private double height;
	private double weight;

	public static class Builder {
		// 必须
		private String name;
		private int age;
		// 可选
		private double height;
		private double weight;

		public Builder(String name, int age) {
			super();
			this.name = name;
			this.age = age;
		}

		public Builder height(double height) {
			this.height = height;
			return this;
		}

		public Builder weight(double weight) {
			this.weight = weight;
			return this;
		}

		public ManFacts build() {
			return new ManFacts(this);
		}
	}

	private ManFacts(Builder builder) {
		this.age = builder.age;
		this.name = builder.name;
		this.height = builder.height;
		this.weight = builder.weight;
	}

}




public static void main(String[] args) {
	ManFacts manFacts=new ManFacts.Builder("macrotea", 22).height(180).weight(140).build();
}
分享到:
评论

相关推荐

    设计模式-Builder模式demo

    Builder模式是一种创建型设计模式,它提供了一种创建对象的抽象接口,并允许子类按照步骤构建复杂的对象。这种模式将对象的创建过程分离出来,使得同样的构造过程可以创建不同的表示,从而实现对象创建过程的解耦。 ...

    angular的表单设计器 angular-form-builder

    Angular 提供了两种表单模式:模板驱动(Template-driven)和响应式(Reactive)。然而,对于更复杂、动态或需要用户自定义的表单,Angular-Form-Builder 提供了一个直观的解决方案。 **一、Angular-Form-Builder的...

    nw-builder

    nw-builder 是一个基于 Node.js 的工具,用于构建和打包 WebKit 应用程序,特别是针对桌面平台的...通过结合 Node.js 的服务器端能力与 WebKit 的前端渲染,nw-builder 打造了一种高效、便捷的跨平台桌面应用开发模式。

    前端开源库-swint-builder-html

    5. **开发模式**:在开发过程中,可以使用 `swint-builder-html dev` 命令启动开发服务器,实现自动编译和热加载。 ### 实战应用 Swint-Builder-HTML 在实际项目中的应用可以帮助开发者快速构建复杂的单页应用...

    ECharts-Theme-Builder, 为ECharts设计自己的主题.zip

    ECharts-Theme-Builder, 为ECharts设计自己的主题 ECharts-Theme-Builder为ECharts设计自己的主题联机主题生成器 插件生成$ npm install$ bower install$ gulp watch

    Laravel开发-form-builder

    这种方式的好处在于可以将业务逻辑与视图层的表示分离,遵循MVC(模型-视图-控制器)的设计模式,使代码更符合最佳实践。 1. **安装与配置** 要开始使用form-builder,首先需要通过Composer将其添加到项目的依赖中...

    前端开源库-swint-builder-svg

    4. **配置灵活**:允许开发者自定义输出路径、CSS前缀、命名模式等参数。 5. **兼容性好**:支持多种环境,包括Node.js和命令行工具。 **使用方法** 使用`swint-builder-svg`通常包括以下步骤: 1. **安装**:...

    Laravel开发-laravel-datagrid-builder

    "Laravel开发-laravel-datagrid-builder"项目是为了解决这一问题,它结合了Laravel的强大后端能力和前端jQuery Bootgrid插件,创建了一个高效的交互式数据网格。 **Laravel框架**: Laravel是一款基于PHP的开源Web...

    PyPI 官网下载 | xml-builder-0.3.0.tar.gz

    1. **Fluent接口**:xml-builder采用Fluent API的设计模式,允许开发者通过链式调用来构建XML元素。例如,可以写`Builder().ele('root').ele('child')`来创建一个嵌套的XML结构。 2. **内建类型转换**:库自动将...

    前端开源库-exhibit-builder-uglify

    在配置文件中,你可以定制`uglifyjs`的选项,例如是否保留函数名、是否启用压缩模式等。 压缩后的JavaScript文件在加载时会更快,因为传输的数据量更少。这有助于提升网站的PageSpeed分数,对于移动设备尤其重要,...

    json-schema-builder:通过面向 UI 的 DSL 生成 JSON-Schema 模式

    json-schema-builder 通过面向 UI 的 DSL 生成 JSON-Schema 模式。为什么? 如果您正在构建一些高级的、面向用户的工具来生成 JSON Schema 对象,那么您的内部表示可能会更像数组......这个包旨在采用该内部 DSL 并...

    vue-cli-plugin-electron-builder-源码.rar

    - 开发模式下,`scripts/start.js` 会启动一个 Vue.js 开发服务器,并通过 `electron-connect` 监听其变化,实现实时刷新 Electron 应用。 5. **多平台兼容性** - 通过 Electron Builder 的跨平台支持,`vue-cli-...

    PyPI 官网下载 | django-report-builder-5.0.0b1.tar.gz

    Django提供了MVC(Model-View-Controller)架构模式的实现,称为MTV(Model-Template-View),并内置了ORM(Object-Relational Mapping)系统,使得开发者可以轻松处理数据库操作。 **django-report-builder** `...

    23种设计模式的java实现-Builder

    Builder设计模式是创建型模式之一,主要解决复杂对象的构建问题,使得构建过程与表示分离。 Builder模式的核心思想是将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。这种模式通常应用于...

    Python库 | django-forms-builder-0.8.4.tar.gz

    Django是Python的一个高级Web开发框架,它遵循MVC(模型-视图-控制器)设计模式。Django的核心特性包括ORM(对象关系映射)用于数据库操作,内置的模板引擎用于生成HTML,以及强大的URL调度器。它强调可重用性和“干...

    vue-form-builder:超级表单生成器基于Vue构建,具有拖放功能,可保存的表单模式和易于维护的表单升级

    在可以使用Vue-Form-Builder时,为什么需要对表单进行编码?通过一些额外的步骤来渲染它:D 好处: 开发中的代码更少(无需自己执行<form> <div> <input> .... </div> </form> ) 易于维护,将来...

    query-builder:Vue查询构建器

    1. **Vue.js**:Vue.js是一款轻量级的前端JavaScript框架,它采用组件化开发模式,具有易于学习、高效渲染、可复用性强等特点。Vue.js的虚拟DOM机制使得它在处理数据绑定和UI更新时性能优秀。 2. **查询构建器**:...

    前端开源库-gardr-builder

    通过这些文件,开发者可以了解Gardr Builder的工作原理,学习其设计模式,或者直接将其集成到自己的项目中,利用其强大的构建功能提升开发效率。总的来说,Gardr Builder作为一个前端开源库,为开发者提供了一个便捷...

    PseAAC-Builder-开源

    PseAAC-General:针对大型蛋白质数据集,快速构建Chou的伪氨基酸组成的多种形式的通用模式。 国际分子科学杂志15(2014)pp.3495-3506 [2]杜朴凤,王鑫,徐超,杨高。 PseAAC-Builder:跨平台的独立程序,用于生成...

Global site tag (gtag.js) - Google Analytics