![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java 编程思想
文章平均质量分 67
写了java的编程思想
不想努力了TT
这个人很聪明,什么都没留下。
展开
-
第1条:用静态工厂方法代替构造器
要想获取一个类的实例,最传统的方法是提供一个公有的构造器,还有一个方法就是提供一个公有的静态工厂方法(static factory method),它只是一个返回类的实例的静态方法。 这个方法将boolean基本类型转换成了一个Boolean对象引用。 静态工厂方法与构造器不同的第一大优势在于,它们有名字。如果构造器的参数本身没有确切地描述正被返回地对象,那么具有适当名称地静态工厂会更容易使用,产生的客户端代码也更易于阅读。例如,构造器BigInteger...原创 2022-06-02 22:31:57 · 223 阅读 · 0 评论 -
第2条:遇到多个构造器参数时要考虑使用构建器
静态工厂和构造器有个共同的局限性:它们都不能很好地扩展到大量的可选参数。比如用一个类表示包装食品外面显示的营养成分标签。这些标签中有几个域是必需的:每份的含量、每罐的含量以及每份的卡路里。还有超过20个的可选域:总脂肪量、饱和脂肪量、转化脂肪、胆固醇、钠等等。大多数产品在某几个可选域中都会有非零的值。 对于这样的类,应该用哪种构造器或者静态工厂来编写呢?程序员一向习惯采用重叠构造器(telescoping constructor)模式,在这种模式下,提供的第一个构造器只有必要的参数,第二个构造原创 2022-06-03 21:24:34 · 216 阅读 · 0 评论 -
第69条:只针对异常的情况才使用异常
如果类具有“状态相关”(state-dependent)的方法,即只有在特定的不可预知的条件下才可以被调用的方法,这个类往往也应该有个单独的“状态测试”(state-testing)方法,即指示是否可以调用这个状态相关的方法。两种实现的功能是一样的,但是第一种使用的是基于异常的循环,企图利用Java的错误判断机制来提高性能。事实上,基于异常的模式比标准模式要慢得多。另一种做法是,如果“状态相关的”方法无法执行想要的计算,就让它返回一个零长度的optional值,或者返回一个可识别的值,比如null。...原创 2022-08-07 20:45:00 · 152 阅读 · 0 评论 -
第76条:使失败保持原子性
举个例子,如果两个线程企图在没有适当的同步机制的情况下,并发地修改同一个对象,这个对象就有可能被留在不一致的状态之中。如果一个操作失败了,它可能会阻止创建新的对象,但是永远也不会使已有的对象保持在不一致的状态之中,因为当每个对象被创建之后它就不会再发生改变。最后一种获得失败原子性的方法远远没有那么常用,那就是编写一段恢复代码,由它来拦截操作过程中发生的失败,以及使对象回滚到操作开始之前的状态。第三种获得失败原子性的方法是,在对象的一份临时拷贝上执行操作,当操作完成之后再用临时拷贝中的结果代替对象的内容。..原创 2022-08-07 20:59:28 · 216 阅读 · 0 评论