摘要: 来源一:过期引用 public class Stack { // 底层使用的是数组 没毛病 private Object[] elements; // size作为指针 没毛病 private int size = 0; // 默认容量 没毛病 private static final int DE 阅读全文
posted @ 2021-02-21 17:16 银河战舰 阅读(63) 评论(0) 推荐(0)
摘要: 通过私有构造器增强不可实例化的类的安全 经常需要定义一些工具类或常量类,类中仅包含静态方法和静态变量,是不希望该类被实例化的,那么可以考虑私有化其构造方法,避免反射调用,在私有化的构造方法中抛出异常。 这种类的存在并没有任何问题,但却因为使用者很多时候也会使用到如new XXX().test()的方 阅读全文
posted @ 2021-02-21 17:15 银河战舰 阅读(67) 评论(0) 推荐(0)
摘要: 公有静态final域,私有化构造方法 缺点:通过Java的反射机制,使用setAccessible方法,可以随意调用这个私有构造器。但可以在私有构造器中加入一些逻辑判断,使其第二次调用时报错。 静态工厂方法 原理和1一致,所以也具有1的缺点,由于从变量变为方法,提供了一些其他优势。 更加灵活:比如我 阅读全文
posted @ 2021-02-21 15:19 银河战舰 阅读(59) 评论(0) 推荐(0)
摘要: 重叠构造器模式 代码臃肿,且使用时,会出现无用的参数也必须要传递的情况。 2.JavaBean模式 是对1的改良,出现的问题是创建过程分步骤了,无法通过构造器参数的有效性来保持一致。比如要联动校验年龄和工龄的关系 还说set方法降低了安全性,随意set就降低了安全性吗,主要还是随意的给字段加set就 阅读全文
posted @ 2021-02-21 08:51 银河战舰 阅读(32) 评论(0) 推荐(0)
摘要: 先把书中关于静态工厂方法与构造器的优劣势对比列举出来,我们再一一分析。 可以自定义方法名,有时候能直观表示其作用。 这个是遵循一个代码原则,能用方法名说明清楚的,就不要写注释。所以才有了优点1,虽然构造方法可以写注释,但开发人员往往不去看注释,哪怕去看也浪费了时间。 单例,不必每次调用都创建新对象 阅读全文
posted @ 2021-02-20 17:36 银河战舰 阅读(24) 评论(0) 推荐(0)