美文网首页
4.使用私有构造方法来避免实例化

4.使用私有构造方法来避免实例化

作者: Orange_____ | 来源:发表于2019-01-23 19:27 被阅读0次

在平常的项目中可能会需要到很多工具类, 但是这些工具类, 它只提供静态方法, 以及静态变量, 并不希望别人去实例化, 这个时候, 可以将构造器设置成私有的, 并在构造器中加入防止实例化对象的代码, 例如抛出异常

public final class NetworkUtils {

    private NetworkUtils() {
        throw new RuntimeException("This class can't create objects, It just an util class");
    }

    // 通过网卡名获取其对应的不是回环的ipv4地址
    public String getNotLoopbackIpv4AddressByNetworkCardName(String networkCardName) {
        // TODO get ip address
        return null;
    }
    
}

使用抽象类来构建工具类避免实例化的想法是不好的, 因为调用者可能会以为该类是可以被继承的
在Java8以后接口可以声明静态方法, 并且接口是不能被实例化的, 看起来接口貌似可以来当做工具类使用, 但他跟抽象类有一个共同的缺点, 那就是会被子类继承
如果一定要使用这两种方法的话, 尽量要在类的注释中说明该类是不可以被继承的, 这样可以尽可能的避免误继承

相关文章

  • 4.使用私有构造方法来避免实例化

    在平常的项目中可能会需要到很多工具类, 但是这些工具类, 它只提供静态方法, 以及静态变量, 并不希望别人去实例化...

  • Android设计模式探讨--单例模式

    核心原则:将构造函数私有化,通过一个静态内部方法来获取唯一实例. 单例模式的定义:确保某个类只有一个实例,避免产生...

  • 枚举单例原理

    单例实现思路 1、构造方法私有化;2、实例化的变量引用私有化;3、获取实例的方法共有。 优点:避免反射、序列化问题

  • 单例模式

    使用一个私有构造方法、一个私有静态变量以及一个共有静态方法实现。私有构造方法保证了不能通过构造方法来创建对象实例,...

  • 单例模式解析

    单例模式的设计要点 保证只有一个实例私有构造方法,确保其他处的代码无法通过调用该类的构造方法来实例化 保证只有一个...

  • 单例模式

    # 单例模式需要满足: 私有的构造函数 懒加载 线程安全 通过静态方法来访问实例 无法通过反射来实例化对象 无法通...

  • 02-Spring中Bean的生命周期

    Bean的生命周期 一个简单的Bean的生命周期: 推断构造方法(确定使用哪个构造方法来实例化对象) 实例化 填充...

  • java构造方法私有化

    理解构造方法私有化过程 - 1. 构造方式私有化 当构造方法私有化后,外部类无法对其进行实例化 - 2. 在类内部...

  • 学Spring的历程(2)——Bean的实例化

    一、构造器实例化 构造器实例化是指Spring容器通过Bean对应类中默认的无参构造方法来实例化Bean. 通过一...

  • java 单例设计模式

    1.传统的两私有一公开(私有构造方法、私有静态实例(懒实例化/直接实例化)、公开的静态获取方法)涉及线程安全问题(...

网友评论

      本文标题:4.使用私有构造方法来避免实例化

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