- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
e ective-java-3rd-chines
前51条:文章翻译来源地址:/c/ce8cf0e13b23
现在全部章节已经更新完成
github pages :提供更好的在线阅读版本
git pages : 提供更快的访问速度
pdf 下载
about this repository
本来以为只是个直接搬运的活,实际上不是。主要工作如下:
改进排版,原有博文排版不太优秀,根据markdwon 排版指北重新排版。
内容修改,原作者在翻译过程中有笔误(可能打字太快了),这里进行修改。
等待内容搬运完成,使用cmd markdown生成 pdf 离线文件
markdown 文件以及英文版原版链接也都放在了 github 上面,希望小伙伴也可以中英文对照,给出一些意见。
额外资源
e ective-java-2nd 中文版
e ective-java-3rd 英文版
e ective-java-3rd 源代码
友情链接
On Java 8中文版
1. 考虑使用静态工厂方法替代构造方法
一个类允许客户端获取其实例的传统方式是提供一个公共构造方法。 其实还有另一种技术应该成为每个程序员
工具箱的一部分。 一个类可以提供一个公共静态工厂方法,它只是一个返回类实例的静态方法。 下面是一个
Boolean 简单的例子( boolean 基本类型的包装类)。 此方法将 boolean 基本类型转换为 Boolean 对象引
用:
public static Boolean valueOf(boolean b) {
return b ? Boolean.TRUE : Boolean.FALSE;
}
注意,静态工厂方法与设计模式中的工厂方法模式不同[Gamma95]。本条目中描述的静态工厂方法在设计模式中
没有直接的等价。
类可以为其客户端提供静态工厂方法,而不是公共构造方法。提供静态工厂方法而不是公共构造方法有优点也有
缺点。
静态工厂方法的一个优点是,不像构造方法,它们是有名字的。 如果构造方法的参数本身并不描述被返回的对
象,则具有精心选择名称的静态工厂更易于使用,并且生成的客户端代码更易于阅读。 例如,返回一个可能为素数
的 BigInteger 的构造方法 BigInteger(int,int,Random) 可以更好地表示为名为
BigIbablePrime 的静态工厂方法。 (这个方法是在 Java 1.4 中添加的。)
一个类只能有一个给定签名的构造方法。 程序员知道通过提供两个构造方法来解决这个限制,这两个构造方法
的参数列表只有它们的参数类型的顺序不同。 这是一个非常糟糕的主意。 这样的 A PI 用户将永远不会记得哪个构造
方法是哪个,最终会错误地调用。 阅读使用这些构造方法的代码的人只有在参考类文档的情况下才知道代码的作
用。
因为他们有名字,所以静态工厂方法不会受到上面讨论中的限制。在类中似乎需要具有相同签名的多个构造方法
的情况下,用静态工厂方法替换构造方法,并仔细选择名称来突出它们的差异。
静态工厂方法的第二个优点是,与构造方法不同,它们不需要每次调用时都创建一个新对象。 这允许不可变的
类 (条目 17) 使用预先构建的实例,或者在构造时缓存实例,并反复分配它们以避免创建不必要的重复对象。
Boolean.valueof(boolean) 方法说明了这种方法:它从不创建对象。这种技术类似于 Flyweight 模式
[Gamma95]。如果经常请求等价对象,那么它可以极大地提高性能,特别是如果在创建它们非常昂贵的情况下。
静态工厂方法从重复调用返回相同对象的能力允许类保持在任何时候存在的实例的严格控制。这样做的类被称为
实例控制( instanc -controll d)。编写实例控制类的原因有很多。实例控制允许一个类来保证它是一个单例 (3) 项或
不可实例化的 (条目 4)。同时,它允许一个不可变的值类 (条目 17) 保证不存在两个相同的实例:当且仅当 a == b 时
a.equals(b) 。这是享元模式的基础[Gamma95]。 Enum 类型 (条目 34) 提供了这个保证。
静态工厂方法
您可能关注的文档
- ACC1905 第二阶段 互联网讲义-白阳更新陆小马功钟浩.pdf
- ACC1905第2阶段 9.建筑业课堂笔记—靳立华陆小马功钟浩.pdf
- ACC1905第3阶段 3.销售流讲义-出纳和会计陆小马功钟浩.pdf
- ACC1905第3阶段 6.税金业务流讲义(新)陆小马功钟浩.pdf
- ACC1905第3阶段 7.报表业务流讲义-郭春华(新)陆小马功钟浩.pdf
- ACC1905-东营职业学院入学摸底考试陆小马功钟浩.pdf
- Android渗透测试入门教程目录v2018.2大学霸陆小马功钟浩.pdf
- ARP技术应用基础教程v1.0陆小马功钟浩.pdf
- ARP技术应用基础教程目录v2.0大学霸陆小马功钟浩.pdf
- ch01陆小马功钟浩.pdf
- 吉林省四平市2023-2024学年中考三模数学试题含解析.doc
- 吉林省四平市铁西区重点中学2024届中考数学仿真试卷含解析.doc
- 吉林省吉林市重点中学2024年中考数学最后一模试卷含解析.doc
- 吉林省农安县华家中学2023-2024学年中考数学最后冲刺模拟试卷含解析.doc
- 吉林省柳河县2024年中考猜题数学试卷含解析.doc
- 吉林省吉林市吉化九中学2024届中考数学四模试卷含解析.doc
- 吉林省白城市大安市达标名校2024年中考联考数学试题含解析.doc
- 徽省临泉重点达标名校2024届中考数学最后冲刺模拟试卷含解析.doc
- 鸡西市重点中学2024年中考生物对点突破模拟试卷含解析.doc
- 吉林省朝鲜族四校联考2024届中考数学押题卷含解析.doc
文档评论(0)