美文网首页
创建和销毁对象

创建和销毁对象

作者: 蹩脚的粤语歌 | 来源:发表于2021-09-22 20:17 被阅读0次

    使用静态工厂方法代替构造器

    1.有名字 便于维护代码

    2.可以返回同一个对象 减缓了内存开销

        如singleton 使用enum可以保证这一点

    3.可以返回子类型 可以返回非公有 不可实例化的 等等 如EnumSet的公有静态方法

    4.静态方法返回的类 在编写时静态工厂方法时不存在 (SPI Service Provider Interface)

    5.静态方法在创建参数化类型实例的时候 是代码更简洁

    遇到多个构造器参数时考虑使用构造器

    1.如果使用有参构造 会对后续的维护造成一些麻烦 如你使用全参构造 后续你却添加了一个参数

    用私有构造器或者枚举类型强化Singleton属性

    恶汉式创建 singleton 仍然可以通过AccessibleObject.setAccessible方法来实例化对象 可以在对象的构造方法里面 抛出异常

    懒汉式创建 会有线程安全问题

    枚举创建 最为推荐的方式

    通过私有构造器强化不可实例化的能力 

    如一些工具类 DateUtils StringUtils 

    避免创建不必要的对象

    如构建公共常量 STRING COLLECTIONS

    消除过期的对象引用

    避免使用终结方法

    相关文章

      网友评论

          本文标题:创建和销毁对象

          本文链接:https://www.haomeiwen.com/subject/ktuggltx.html