摘要: 改编自 http://www.cnblogs.com/IcanFixIt/p/8107863.html 许多类依赖于一个或多个底层资源。例如,拼写检查器依赖于字典。将此类类实现为静态实用工具类并不少见(条目 4): 同样地,将它们实现为单例也并不少见(条目 3): 这两种方法都不令人满意,因为他们假 阅读全文
posted @ 2018-08-04 17:34 miaomiaotab 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 转 https://blog.csdn.net/limm33/article/details/54962259 我们经常在Java里面提到String的不变性,下面就来说一下对于String的不变性的理解: 可以参考以下程序: 通过以上程序能更好的帮助我们理解String的不变性,不变性是什么呢?就 阅读全文
posted @ 2018-08-04 17:16 miaomiaotab 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 123 123 阅读全文
posted @ 2018-08-04 05:03 miaomiaotab 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 转 https://www.cnblogs.com/mrfangzheng/archive/2011/09/01/2161703.html 无状态对象 有状态对象 转 https://blog.csdn.net/eff666/article/details/52495393 转 https://ww 阅读全文
posted @ 2018-08-04 04:11 miaomiaotab 阅读(246) 评论(0) 推荐(0) 编辑
摘要: Builder模式非常适合类层次结构。 使用平行层次的builder,每个嵌套在相应的类中。 抽象类有抽象的builder; 具体的类有具体的builder。 例如,考虑代表各种比萨饼的根层次结构的抽象类: 请注意,Pizza.Builder是一个带有递归类型参数( recursive type p 阅读全文
posted @ 2018-08-04 03:52 miaomiaotab 阅读(566) 评论(0) 推荐(0) 编辑
摘要: catch early,throw late 阅读全文
posted @ 2018-08-04 03:48 miaomiaotab 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 构造方法参数过多时,Builder模式比使用伸缩构造方法(telescoping constructors)更容易读写,比JavaBeans模式更安全。 Builder通常是它所构建的类的一个静态成员类(条目24)。以下是它在实践中的示例: NutritionFacts类是不可变的,所有的参数默认值 阅读全文
posted @ 2018-08-04 03:35 miaomiaotab 阅读(187) 评论(0) 推荐(0) 编辑
摘要: TODO 阅读全文
posted @ 2018-08-04 03:04 miaomiaotab 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 静态工厂的第四个优点是返回对象的类可以根据输入参数的不同而不同。 声明的返回类型的任何子类都是允许的。 返回对象的类也可以随每次发布而不同。 EnumSet类(条目 36)没有公共构造方法,只有静态工厂。 在OpenJDK实现中,它们根据底层枚举类型的大小返回两个子类中的一个的实例:如果大多数枚举类 阅读全文
posted @ 2018-08-04 02:46 miaomiaotab 阅读(342) 评论(0) 推荐(0) 编辑
摘要: TODO 阅读全文
posted @ 2018-08-04 02:44 miaomiaotab 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 静态工厂的第5个优点是,在编写包含该方法的类时,返回的对象的类不需要存在。这种灵活的静态工厂方法构成了服务提供者框架的基础,比如Java数据库连接API(JDBC)。服务提供者框架是提供者实现服务的系统,并且系统使得实现对客户端可用,从而将客户端从实现中分离出来。 服务提供者框架中有三个基本组:服务 阅读全文
posted @ 2018-08-04 02:32 miaomiaotab 阅读(919) 评论(0) 推荐(0) 编辑