摘要: 只包含静态方法和静态域的工具类,实例没有任何意义。缺少显式构造器时,编译器会紫铜提供一个公有的、无参的缺省构造器。将构造器私有化,则无法被实例化,也不能子类化://NoninstantiableutilityclasspublicclassUtilityClass{//SuppressdefaultconstructorfornoninstantiabilityprivateUtilityClass(){thrownewAssertionError();}...//Remainderomitted}来自为知笔记(Wiz) 阅读全文
posted @ 2013-12-07 15:13 aqxyjay 阅读(118) 评论(0) 推荐(0) 编辑
摘要: Singleton,指仅被实例化一次的类。方法一:公有静态final域,私有构造方法,可以通过反射进行攻击。//SingletonwithpublicfinalfieldpublicclassElvis{publicstaticfinalElvisINSTANCE=newElvis();privateElvis(){ ... }publicvoidleaveTheBuilding(){ ... }}方法二:静态工厂方法,较灵活,易被修改,反序列化时会创建新实例,需注意。//Singletonwith static factorypublicclassElvis{privatestaticfin 阅读全文
posted @ 2013-12-07 15:12 aqxyjay 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 重叠构造器(telescoping constructor)模式 —— 代码复杂,阅读困难示例代码:// Telescoping constructor pattern - does not scale well!public class NutritionFacts { private final int servingSize; // (ml) required private final int servings; // (per container) required private final int calories; // optional private final int f 阅读全文
posted @ 2013-12-07 15:09 aqxyjay 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 优点:它们有名称;不必在每次调用它们的时候都创建一个新的对象;它们可以返回原返回类型的任何子类型的对象;在创建参数化类型实例的时候,它们使代码变得更加简洁;缺点:类如果不含公有的或者受保护的构造器,就不能被子类化;它们与其他的静态方法实际上没有任何区别。深入理解静态工厂方法(见附件)11.3.1 单例(Singleton)类11.3.2 枚举类11.3.3 不可变(immutable)类与可变类11.3.4 具有实例缓存的不可变类11.3.5 松耦合的系统接口来自为知笔记(Wiz)附件列表 阅读全文
posted @ 2013-12-07 15:06 aqxyjay 阅读(105) 评论(0) 推荐(0) 编辑