package chape7;
/**
* 檢查參數的有效性
* 當編寫方法或者構造器時,應該考慮他的參數有什麽限制 應該吧這些限制寫在文檔中,並且在這個方法的開頭處,通過顯示的檢查
* 來實施這些限制。養成這樣的習慣很重要
* 當判斷一個數據的合法性的時候就要拋出異常。 這裡就涉及到異常 第九章 60條:優先使用標準的異常 就是java自帶的異常
* 這也是一種類的重用的表現;
* 常用的异常:
* IllegalArgumentException 非null的参数数值不正确;传入的参数不合法;
* IllegalStateException 对于方法调用而言,对象状态不合法比如摸个对象在被正确的初始化之前就调用 会抛出这个异常
* NullPointerException 空指针异常 在禁止null的情况下使用了null值;
* IndexOutOfBoundsException 下标参数越界
* ConcurrentModificationException 当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。
* UnsupportedOperationException 当不支持请求的操作时,抛出该异常
* @author lee
*
*/
public class Chape38 {
/**
* @param args
*/
public static void main(String[] args) {
Nuter nu = new Nuter.Builder (200,2).fat(-1).sodium(20).build();
}
}
class Nuter
{
private final int size;
private final int sering;
private final int fat;
private final int sodium;
public static class Builder
{
//这两个参数时必须的参数
private final int size;
private final int sering;
//下面是可选的参数 设置了默认值
private int fat = 0;
private int sodium = 0;
public Builder (int size ,int sering)
{
this.sering = sering;
this.size = size;
}
public Builder fat (int val)
{
/**
* 断言的使用
* 在這裡判斷數據的合法性 *
*/
if(val < 0)
{
throw new IllegalArgumentException ("val必須大於零");
}
fat = val;
return this;
}
public Builder sodium (int val)
{
this.sodium = val;
return this;
}
public Nuter build ()
{
return new Nuter (this);
}
}
private Nuter (Builder buder)
{
this.size = buder.size;
this.sering = buder.sering;
this.sodium = buder.sodium;
this.fat = buder.fat;
}
}
分享到:
相关推荐
总结来说,静态工厂方法在Java中提供了一种比构造方法更加灵活和高效的方式来创建对象实例,特别是在需要实例控制、性能优化或API设计简洁时。文档《effective-java.pdf》详细地探讨了静态工厂方法在设计和实现上的...
这本书提供了许多实用的编程实践和经验教训,帮助开发者编写出更高效、可维护的Java代码。这里我们将围绕"Effective-Java:Effective Java中文版第二版示例代码"这一主题,深入探讨书中的核心知识点。 1. **单例模式...
这本书旨在提供实用的编程指导,帮助开发者写出更高效、更可维护的Java代码。以下是对书中核心知识点的详细解读: 1. **类和对象的设计原则**:书中强调了设计良好的API的重要性,包括接口的使用、类的封装、以及...
这本书的第二版深入探讨了如何编写高效、可维护的Java代码,并提供了许多实用的编程指南和最佳实践。以下是根据标题和描述提取的一些关键知识点: 1. **项规则与实践**:书中提出了许多编程最佳实践,每一条都被...
《Effective Java》是Java开发领域的一本经典著作,由Joshua Bloch撰写,书中总结了23条编程经验法则,旨在帮助开发者写出更高效、更可靠、更易于维护的Java代码。这个压缩包包含了作者在书中提到的一些示例代码,...
这本书主要探讨了如何编写高效、可维护的Java代码,并提出了许多实用的编程实践和设计原则。第二版在第一版的基础上进行了更新,以适应Java语言的新特性和发展。以下是基于书中的核心知识点的详细阐述: 1. **接口...
这本书深入探讨了如何编写出高质量、高效、可维护的Java代码,涵盖了众多最佳实践和设计模式。这里我们将围绕书中的源代码,解析其中蕴含的重要知识点。 1. **类和对象的设计原则**: - **最小化访问权限**:书中...
书中列举了23个编程实践,讲解如何编写高效、可维护的Java代码。例如,它涵盖了枚举优于常量、避免使用原始类型、优先考虑泛型、以及何时使用静态工厂方法而非构造函数等主题。 3. **《Thinking in Java》**:Bruce...
这本书汇集了作者多年的编程经验,提供了许多实用的编程准则和最佳实践,旨在帮助开发者写出更高效、更安全、更易于维护的Java代码。在第三版中,它涵盖了Java语言和库的新特性,包括Java 8和Java 9的一些重要更新。...
- Java性能优化:如何通过调整JVM参数、代码优化等方式提升系统性能。 - 架构设计:讨论微服务、SOA等架构设计原则和实践。 4. **实战经验** - Web开发:如使用Spring Boot、Struts、Hibernate等框架进行Web...
Oracle官方文档、"Head First Java"、"Effective Java"等都是优秀的学习资源。 - 实践是学习编程的关键,初学者可以通过完成类似`VolcanoRobot`这样的小项目,逐步提升自己的编程技能。 总的来说,"java初学者学习...
本书《Creating Effective Java Help》由Kevin Lewis撰写,旨在为不同层次的Java开发者和技术作家提供关于创建高效Java帮助系统的全面指南。 - **在线文档的使用**:介绍了如何利用Java Help为用户提供详尽的在线...
这本书汇集了众多编程最佳实践,旨在帮助开发者写出更高效、更可维护的Java代码。以下是对《Effective Java》第三版源代码示例和摘要的一些关键知识点的详细解释: 1. **枚举(Enums)**:书中强调了使用枚举类型而...
2. 《Effective Java》:提供了编写高效、可维护Java代码的最佳实践。 3. 《Java并发编程实战》:深入解析Java多线程和并发编程。 4. 《深入理解Java虚拟机》:全面解析JVM的工作原理。 5. 《Head First设计模式》:...
Java单例模式是一种常见的设计模式,它在软件开发中...了解并掌握单例模式,有助于编写更加高效、可维护的Java代码,优化系统资源的使用。在实际项目中,开发者应根据需求选择合适的单例实现方式,兼顾性能和安全性。
LF_EffectiveJava可能包含泛型类、泛型方法的实例,以及如何处理类型擦除的策略。 6. **迭代器与foreach循环**:书中建议优先使用foreach循环来遍历集合,因为它简洁且不易出错。项目中可能包含对比传统迭代器和...
《Effective Java》是Java开发领域的经典著作,由Joshua Bloch撰写,中文版为Java开发者提供了深入理解语言特性和最佳实践的...通过学习这些最佳实践,Java开发者可以显著提升代码质量,优化程序性能,并降低维护成本。
- **性能优化**:讨论常见的性能瓶颈以及如何通过代码优化来提高程序的执行效率。 ### 4. 实战案例分析 - **项目实战**:通过具体的项目案例,展示如何运用前面学到的知识点解决实际问题,增强读者的实战经验。 - ...
书中提供了大量的实例来解释如何编写高效的SQL查询,并介绍了多种优化策略,对于经常需要与数据库打交道的Java开发者来说,这本书是必备读物。 - **《MySQL性能调优与架构设计》** 本书不仅关注于MySQL数据库的...