`

Effective Java第二条:遇到多个构造器参数时要考虑用构建器

阅读更多

1, 对于一个类具有很多可选参数时,我们考虑使用:a,重叠构造器(telescoping constructor),bJavaBean模式。C,构建器即Builder模式

2, 重叠构造器模式下,第一个只有必要参数的构造器,第二个构造器有一个可选参数,第三个构造器有两个,以此类推。

3, Javabean模式提供了set方法来设置值。但是其有可能出于不一致状态,所以我们必须保证其线程安全。

4, 构建起模式(builder

分享到:
评论
1 楼 小小黑咖啡 2011-03-18  
这位朋友你好,很高兴你能写这篇帖子,但是代码的错误有点多,下次希望你能在eclipse打出来之后再贴上去。这是我改的代码,你看下对吗。相互学习
public  class  Builderpattern{
			private final int a;
			private final int b;
			private final int c;
			private final int d;
			private final int e;
			private final int f;
		 	public static class Builder{
				private final int a;
				private final int b;
			
				private int c=0;
				private int d=0;
				private int e=0;
				private int f=0;
	 	 		public Builder(int a,int b){
					this.a=a;
					this.b=b;		
				}
				public Builder c(int val)
				{c=val; return this;}
				public Builder d(int val)
				{d=val;return this;}
				public Builder e(int val)
				{e=val;return this;}
				public Builder f(int val)
				{f=val;return this;}
				
				public Builderpattern build(){
					return new Builderpattern(this);
				}
			}
			
			private Builderpattern(Builder builder){
				a=builder.a;
				b=builder.b;
				c=builder.c;
				d=builder.d;
				e=builder.e;
				f=builder.f;

			}
}



客户端代码
Builderpattern cc=new Builderpattern.Builder(240,8).c(100).d(35).e(45).build();

相关推荐

    Effective Java第三版1

    2. **构建器(Builder pattern)**:当类有多个构造器参数时,构建器模式提供了一种更清晰的构造对象的方式,避免了“参数过多”的问题。 3. **单例模式**:通过私有构造器和枚举类型强化单例属性,确保线程安全且...

    effective-java.pdf

    标题“effective-java.pdf”与描述“effective-java.pdf”表明本文档是关于Java编程实践的指南,且内容可能来自于一本名为《Effective Java》的书籍,该书是由Joshua Bloch编写,被广泛认为是Java编程的权威指南。...

    Effective-Java读书笔记(上)

    **遇到多个构造器参数时的考虑**: - **重叠构造器模式**:这种模式下,每个构造器提供比前一个多一个参数,但是这种模式会导致构造器过多,增加复杂度。 - **JavaBeans模式**:虽然使用无参构造器并结合setter方法...

    Effective-Java:Effective Java中文版第二版示例代码

    《Effective Java》是Java开发领域的经典著作,由Joshua Bloch撰写,中文版第二版更是深受广大Java开发者喜爱。这本书提供了许多实用的编程实践和经验教训,帮助开发者编写出更高效、可维护的Java代码。这里我们将...

    1_Effective_Java_2nd_Edition_proglib_java_Joshua_

    4. **构造器**:书中阐述了如何设计和使用构造器来创建对象,强调了单参数构造器和工厂方法的优缺点,以及如何利用Builder模式来构建复杂对象。 5. **异常处理**:异常处理是Java编程中的一个重要方面,Bloch建议...

    effectiveJava的笔记

    2. **构造器与工厂方法**:提倡使用私有构造器和静态工厂方法,以便于控制类的实例化过程,提高代码灵活性,例如实现不可变对象、延迟初始化等。 3. **接口与抽象类**:讨论了接口和抽象类在设计上的差异,强调接口...

    Effective-Java-2nd-Edition-(May-2008).zip_effective java

    《Effective Java》是Java编程领域的一本经典著作,由Joshua Bloch撰写,第二版发布于2008年。这本书旨在提供实用的编程指导,帮助开发者写出更高效、更可维护的Java代码。以下是对书中核心知识点的详细解读: 1. *...

    Effective.Java3rd.zip

    在《Effective Java》第三版中,作者分享了28项关键的编程策略,涵盖了类和对象的设计、泛型、枚举、集合、并发等多个方面。以下是这些主题的一些核心知识点: 1. **使用final、static和private修饰符**:强调这三...

    effectiveJava:有效的java se 书中的例子

    第 2 条:当面临许多构造函数参数时考虑构建器 伸缩构造函数模式有效,但是当参数很多时很难编写客户端代码,而且更难阅读 Builder 模式模拟命名的可选参数 Class.newInstance 破坏编译时异常检查 在设计具有构造...

    EFFECT JAVA 中文

    1. **构造器与工厂方法**:书中强调了如何正确使用构造器,包括私有构造器、工厂方法和静态工厂方法。静态工厂方法的优势在于它们可以有选择性地返回类的子类型实例,而无需暴露其实现细节。 2. **设计和实现equals...

    Java的Builder模式生成器FreeBuilder.zip

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

Global site tag (gtag.js) - Google Analytics