对ImageIO的私有构造方法的理解

1. 来源


  • 昨天一个朋友问我,ImageIO类中显示实现了私有的无参构造方法,它的作用是什么?

2. 最初的想法


  • 刚开始我想,私有的构造方法,一般用于单例模式,正好当时有点事,也没有仔细看,就告诉她应该是实现单例模式的。隔了一会之后,她说:“在该类中没有找到初始化本类对象的方法”。单例模式设计初衷就是为了所有的调用都是用同一个对象,所以私有化了构造方法,使本类之外的其他类不能创建该类对象,但同时也需要提供一个得到该类对象的一个接口。在本类中没有找到创建本类对象,那它就不是单例模式。

  • 私有构造

    /**
     * Constructor is private to prevent instantiation.
     */
    private ImageIO() {}
    

3. 之后的理解


  • 晚上闲下来之后,我查看了该类源码,发现其为final类(final类也就意味着不能被其他类继承),然后发现该类提供的方法都为static之后才恍然大悟。该类就是一个工具类,私有构造就是为了别人不能创建该类的对象,对于工具类而言,对象是没有任何意义的。

4. 工具类实现的总结


  1. 工具类定义为 final,可以防止被别人失误继承。
  2. 显示定义私有构造方法(默认的无参构造方法在同包中是可访问的)。
  3. 提供给其他类的工具方法需要定义成 static。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值