`
jaesonchen
  • 浏览: 312999 次
  • 来自: ...
社区版块
存档分类
最新评论

多个构造器参数要考虑使用构建器模式(Builder模式)

 
阅读更多
public class BuilderPattern {
	
	private final String name;
	private final String category;
	private final int size;
	private final int code;
	
	private BuilderPattern(Builder builder) {
		this.name = builder.name;
		this.category = builder.category;
		this.size = builder.size;
		this.code = builder.code;
	}
	
	public static class Builder {
		//required parameters
		private final String name;
		private final String category;
		//optional parameters
		private int size = 0;
		private int code = 0;
		
		public Builder(String name, String category) {
			this.name = name;
			this.category = category;
		}
		
		public Builder size(int size) {
			this.size = size;
			return this;
		}
		public Builder code(int code) {
			this.code = code;
			return this;
		}
		
		public BuilderPattern build() {
			return new BuilderPattern(this);
		}
	}
	
	@Override public String toString() {
		return "name=" + this.name + ",category=" + this.category + ",size=" + this.size + ",code=" + this.code;
	}
	public static void main(String[] args) {
		
		BuilderPattern bp = new BuilderPattern.Builder("nike", "鞋类").code(1001).size(40).build();
		System.out.println(bp);
	}
}

 

 * 构造器和静态工厂方法有个共同的局限性:它们都不能很好的扩张到大量的可选参数。
   通常使用JavaBean来包装参数,缺点是在构造过程中JavaBean可能出于不一致的状态。类无法仅仅

   通过检验构造器参数的有效性来保证一致性。
   如果类的构造器或者静态工厂方法中具有多个参数,设计这种类时,Builder模式就是不错的选择,

   特别是大多数参数可选时。与传统的重叠构造器相比,使用Builder模式的客户端将更易于阅读和编写,

   构造器也比JavaBean更安全。

分享到:
评论

相关推荐

    生成器模式builder

    生成器模式(Builder Pattern)是一种设计模式,它允许我们分步骤构建复杂对象,而无需暴露其构造过程。这种模式在创建对象时提供了更大的灵活性,特别是当构造过程需要多个步骤或者对象有不同的构造方式时。Builder...

    设计模式之建造者Builder模式

    1. **产品角色(Product)**:这是被构建的复杂对象,包含多个部分或属性。 2. **具体建造者角色(Concrete Builder)**:实现了抽象建造者的接口,负责具体的建造过程,并且生产具体的产品实例。 3. **抽象建造者...

    Builder 模式

    在实际编程中,Builder模式常用于实现复杂的对象构造,例如XML解析器、SQL构建器等。例如,SQLBuilder可以允许程序员逐步添加查询条件,而无需一次性写完所有SQL语句,提高了代码的可读性和可维护性。 `源码`标签...

    晨会分享Builder设计模式

    1. **产品角色(Product)**:这是要构建的复杂对象,通常包含多个部分或属性。 2. **抽象建造者角色(Builder)**:定义一个构建产品的接口,规定了构建各个部分的抽象方法。 3. **具体建造者角色(Concrete ...

    C#面向对象设计模式纵横谈(4):Builder 生成器模式(创建型模式)

    在C#中,Builder模式经常被用于复杂对象的构建,特别是当构建过程需要多个步骤或者需要在不同环境中创建相似但略有差异的对象时。这种模式将对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 Builder...

    多功能SQL构造器SQLBuilder.Core库 C#源码

    SQLBuilder.Core是一个C#编写的多功能SQL构造器库,旨在简化不同数据库系统下的SQL语句构建工作。该库支持主流的数据库平台,包括SqlServer、MySql、Oracle、Sqlite以及PostgreSql,为开发者提供了一个统一的操作...

    C#面向对象设计模式纵横谈(4):Builder 生成器模式(创建型模式) (Level 300)

    在C#代码中,导演类通常包含一个或多个方法,这些方法接受Builder类型的参数并调用其相应的方法来构建产品。 2. Builder(抽象建造者):这是个接口或抽象类,定义了构建产品各个部分的接口。Builder接口规定了所有...

    Builder(生成器)模式定义.pdf

    此外,如果需要创建多个类似但有细微差异的对象,Builder模式也能提供便利,因为它允许我们使用相同的构建过程创建不同表示的对象。 总结来说,Builder模式的核心优点在于: 1. **解耦**:Builder模式将构造过程和...

    builder模式示例代码

    在Android开发中,Builder模式可以提高代码的可读性和可维护性,特别是在处理大量可选参数时,比使用长链式构造函数或大量重载构造函数更为优雅。通过阅读和理解`builderTest`项目中的代码,你可以深入掌握Builder...

    构建者模式、回调和观察者设计模式

    在构建者模式中,一个构建器类会一步一步地构造复杂对象,用户可以通过改变构建步骤来创建不同类型的对象。这种模式特别适用于当一个对象的构造过程非常复杂,或者需要在构造过程中进行多种选择时。构建者模式将构造...

    【设计模式】- 生成器模式(Builder)(csdn)————程序.pdf

    生成器模式,也称为建造者模式,是一种设计模式,用于创建复杂对象,它允许你按照一系列步骤来构造对象,而这些步骤可以通过不同的实现来产生不同形式的对象。生成器模式的核心在于分离了对象的构造过程和表示细节,...

    鸿蒙HarmonyOS 开发通过 @BuilderParam装饰器:引用@Builder函数实现自定义标题栏

    在HarmonyOS中,开发者可以利用@Builder来定义一个构造过程,这个过程可以包含多个步骤,每个步骤对应于一个@BuilderParam标记的参数。通过这种方式,开发者可以在代码中以更加灵活的方式组装和配置标题栏组件。 ...

    java设计模式之Builder&Decorator

    - Builder模式适用于需要构建复杂对象,且对象的构建过程可以分解为多个步骤的情况,它可以使得构建过程独立于表示。 - Decorator模式用于动态地给对象添加一些额外的职责,当要扩展对象功能时,优先考虑使用装饰...

    Java设计中的Builder模式的介绍

    概述 Builder模式:将一个...下面从一个Person例子进行分析重叠构造器模式、JavaBeans模式、Builder模式的使用。Person类有两个必要参数(id和name),有5个可选参数(age,sex,phone,address和desc) 重叠构造器模式

    23钟设计模式之生成器模式

    生成器模式(Builder Pattern)是一种创造型设计模式,它将一个复杂对象的构建与它的表示分离,使得同样的构建可以创建不同的表示。这种模式可以在以下情况下使用: 1. 当创建复杂对象的算法应该独立于该对象的组成...

    bootstrap表单构造器

    在实际应用中,开发者可以将表单构造器集成到现有的Web应用程序中,或者作为一个独立的模块供多个项目共享。通过这样的工具,不仅能够快速构建美观且功能完善的表单,还能减少调试和维护的时间,提高生产力。

    java生成器模式

    生成器模式(Builder Pattern)是Java设计模式中的创建型模式之一,主要解决复杂对象的构建问题,通过将构造过程逐步分解,使得构造过程与表示分离,使得同样的构建过程可以创建不同的表示。这种模式通常用于创建...

    BuilderBuilder:使用流利的构建器对象而不是构造器生成Java POJO的工具

    BuilderBuilder 是一个旨在简化Java POJO(Plain Old Java Object)创建过程的工具,它提倡使用流利的构建器模式而非传统的构造器。构建器模式是一种设计模式,它允许我们分步骤构建复杂对象,使得创建过程更加清晰...

    Java的Builder模式生成器FreeBuilder.zip

    当设计类的构造函数或静态工厂具有多个参数时,Builder 模式是一个不错的选择。—— Effective Java,第二版,第39页背景在 Java 中实现 Builder 模式容易出错和重复。即使是一个简单的四字段类,最基本的构建器 ...

Global site tag (gtag.js) - Google Analytics