10 2013 档案

摘要:第5条 避免创建不必要的对象 一般来说,最好能重用对象而不是在每次需要的时候就创建一个相同功能的对象。 反面例子: String s = new String("stringette"); // DON'T DO THIS! 对于同时提供了静态工厂方法和构造器都不可变类,通常可以使用静态工厂方法而不是构造器。例如,静态工厂方法Boolean.valueOf(String)几乎总是优先于构造器Boolean(String)。 除了重用不可变对象之外,也可以重用那些已知不会被修改的可变对象。 适配器是指这样一个对象:它把功能委托给一个后备对象,从而为后备对象提供一个可以 阅读全文
posted @ 2013-10-31 22:41 yanjf 阅读(302) 评论(0) 推荐(0)
摘要:第4条 通过私有构造器强化不可实例化的能力 只包含静态方法和静态域的工具类。 企图通过将类做成抽象类来强制该类不可被实例化是行不通的。该类可以被子类化,并且该子类也可以被实例化。 // Noninstantiable utility class public class UtilityClass { // Suppress default constructor for noninstantiability private UtilityClass() { throw new AssertionError(); } ... // Remainer om... 阅读全文
posted @ 2013-10-29 21:21 yanjf 阅读(172) 评论(0) 推荐(0)
摘要:第3条 用私有构造器或者枚举类型强化Singleton属性 Singleton指仅仅被实例化一次的类。Singleton通常被用来代表那些本质上唯一的系统组件,比如窗口管理器或者文件系统。 方法一: // Singleton with public final field public class Elvis{ public static final Elvis INSTANCE = new Elvis(); pirvate Elvis() {} public void leaveTheBuilding() {....} } 一旦Elvis类被实例化,只会存在一个... 阅读全文
posted @ 2013-10-29 20:08 yanjf 阅读(227) 评论(0) 推荐(0)
摘要:第2条 遇到多个构造器参数时要考虑用构建器 静态工厂和构造器有个共同的局限性: 它们都不能很好的扩展到大量的可选参数。 JavaBeans 模式自身有着严重的缺点: 构造过程被分解到了几个调用中,在构造过程中JavaBean可能处于不一致的状态。 JavaBeans模式阻止了把类做成不可变得可能。 Builder模式:不直接生产想要的对象,而是让客户端利用所有必要的参数调用构造器(或者静态工厂),得到一个builder对象。然后客户端再builder对象上调用类似于setter方法,来设置每个相关的可选参数。最后,客户端调用无参的build方法来生产不可变对象。 示例: // Bu... 阅读全文
posted @ 2013-10-28 22:50 yanjf 阅读(453) 评论(0) 推荐(0)
摘要:第1条 考虑用静态工厂方法代替构造器 对于类而言,为了让客户端获取自身都一个实例,最常用的方法是提供一个公有地构造器。还有一个方法:提供一个公有的静态工厂方法(static factory method)。 示例1: 将boolean基本类型值转换成一个Boolean对象引用。 public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 静态工厂方法都优势: 一。 静态方法都有名称。例如:构造器BigInteger(int, int, Random)返回的Big... 阅读全文
posted @ 2013-10-27 21:05 yanjf 阅读(436) 评论(0) 推荐(0)
摘要:5 Standard I/O Library (标准I/O库) 5.1 Introduction (介绍) The standard I/O library handles such details as buffer allocation and performing I/O in optional-sized chunks, obviating our need to worry about using the correct block size. (标准I/O库处理像缓存分配,在可选的块间执行等细节,省却我们需要选择使用正确的块大小的担心。) 5.2 Streams and FI... 阅读全文
posted @ 2013-10-15 22:51 yanjf 阅读(257) 评论(0) 推荐(0)