摘要: 推荐序 前言 致谢 关注公众号,回复 E3 获得全文翻译! 第一章 引言 "第二章 创建和销毁对象" "第1项:用静态工厂方法代替构造器" "第2项:遇到多个构造器参数时要考虑使用构建器" "第3项:用私有构造器或者枚举类型强化Singleton属性" "第4项:通过私有构造器强化不可实例化的能力" 阅读全文
posted @ 2019-03-23 10:16 coloured_glaze 阅读(246) 评论(0) 推荐(0) 编辑
摘要:   重写equals方法看起来似乎很简单,但是有许多重写方式会导致错误,而且后果非常严重。最容易避免这类问题的办法就是不覆盖equals方法,在这种情况下,类的每个实例都只能与它自身相等。如果满足了以下任何一个条件,那就是正确的做法: 类的每个实例都是唯一的。 对于代表活动实体而 阅读全文
posted @ 2019-10-19 08:00 coloured_glaze 阅读(563) 评论(0) 推荐(0) 编辑
摘要:   Java库包含许多必须通过调用close方法手动关闭的资源。 示例包括InputStream,OutputStream和java.sql.Connection。 关闭资源经常被客户忽视,可预见的可怕性能后果。 虽然其中许多资源使用终结方法作为安全网,但终结方法不能很好地工作( 阅读全文
posted @ 2019-04-06 15:19 coloured_glaze 阅读(173) 评论(0) 推荐(0) 编辑
摘要:   终结方法是不可预测的,通常很危险,一般情况下是不必要的(Finalizers are unpredictable, often dangerous, and generally unnecessary.)。使用 终结方法会导致行为不稳定,降低性能,以及可移植性问题。当然,终结 阅读全文
posted @ 2019-04-06 15:18 coloured_glaze 阅读(398) 评论(0) 推荐(0) 编辑
摘要:   当你从手工管理内存的语言(比如C或者C++)转换到具有垃圾回收功能的语言的时候,程序猿的工作就会变得更加容易,因为当你用完了对象之后,他们就会被自动回收。当你第一次经历对象回收功能的时候,会觉得这简直有点不可思议。这很容易给你留下这样的印象,认为自己不再需要考虑内存管理的事情 阅读全文
posted @ 2019-04-06 15:17 coloured_glaze 阅读(181) 评论(0) 推荐(0) 编辑
摘要:   一般来说,最好能重用对象而不是在每次需要的时候就创建一个相同功能的新对象。重用的方式既快速,有流行。如果对象是不可变(immutable)的(第17项),那么就能重复使用它。   作为一个极端的反面例子,考虑下面的语句:   该语句每次 阅读全文
posted @ 2019-04-06 15:16 coloured_glaze 阅读(197) 评论(0) 推荐(0) 编辑
摘要:   许多类依赖于一个或多个底层资源。 例如,拼写检查器依赖于字典。常见的做法是将这些类实现为静态实用程序类(第4项):   同样的,将它们作为单例实现的情况并不少见(第3项):   这些方法都不令人满意,因为它们假设只有一本值得使用的字典。 阅读全文
posted @ 2019-04-06 15:15 coloured_glaze 阅读(174) 评论(0) 推荐(0) 编辑
摘要:   有时候你会想要编写一个只包含一组静态方法和静态字段的类。这种类名声很不好,因为有些人为了避免使用面向对象的思维方式而滥用这样的类(some people abuse them to avoid thinking in terms of objects),但是他们确实有它们特有 阅读全文
posted @ 2019-03-26 20:30 coloured_glaze 阅读(171) 评论(0) 推荐(0) 编辑
摘要:   Singleton指仅仅被实例化一次的类 \[Gamma95\]。Singleton通常代表无状态的对象,例如函数(第24项)或者本质上唯一的系统组件。使类称为Singleton会使它的客户端测试变得十分困难,因为除非它实现了作为其类型的接口,否则不可能将模拟实现替换为单例。 阅读全文
posted @ 2019-03-24 08:35 coloured_glaze 阅读(157) 评论(0) 推荐(0) 编辑
摘要:   静态工厂和构造器有个共同的局限性:他们都不能很好地扩展到大量的可选参数。考虑用一个类表示包装食品外面显示的营养成分标签。这些标签中有几个域是必需的:每份的含量、每罐的含量以及每份的卡路里,还有超过20个可选域:总脂肪、饱和脂肪量、转化脂肪、胆固醇、钠等等。大多数产品在某几个可 阅读全文
posted @ 2019-03-23 10:15 coloured_glaze 阅读(324) 评论(0) 推荐(0) 编辑