美文网首页
java构造方法私有化

java构造方法私有化

作者: 后来者2016 | 来源:发表于2017-11-19 15:56 被阅读0次

理解构造方法私有化过程

- 1. 构造方式私有化

class Singleton {
    private Singleton(){ }
    public void print() {
        System.out.println("hello");
    }
}

当构造方法私有化后,外部类无法对其进行实例化

- 2. 在类内部实例化对象

class Singleton {
    private Singleton(){ }
    Singleton instance = new Singleton();
    public void print() {
        System.out.println("hello");
    }
}

此时需要通过在类内部进行实例化对象的产生

- 3. 静态方法取得此实例化对象

public class TestSingleton {
    public static void main(String[] args) {
        Singleton s = Singleton.instance;
        s.print();
    }   
}
class Singleton {
    private Singleton(){ }
    static Singleton instance = new Singleton();
    public void print() {
        System.out.println("hello");
    }
}

加入static修饰,使得其他类取得此类的实例化对象

- 4. private封装类成员变量

public class TestSingleton {
    public static void main(String[] args) {
        Singleton s = Singleton.getInstance();
        s.print();
    }   
}
class Singleton {
    private Singleton(){ }
    private static Singleton instance = new Singleton();
    public static Singleton getInstance(){
        return instance;
    }
    public void print() {
        System.out.println("hello");
    }
}

既然instance为类成员,就应该用private封装起来。故出现了getInstance()方法

小结

  1. java中有一种设计模式叫单例设计模式,所谓单例就是在入口(构造方法)限制了对象的实例化操作。如果不希望一个类产生多个对象时,使用单例设计模式。
  2. 单例设计模式的核心就是:将类的构造方法私有化,在类的内部产生实例化对象,并通过类的静态方法返回实例化对象的引用。

相关文章

  • java构造方法私有化

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

  • java单例模式

    1.Java中的单例模式主要通过构造方法私有化来实现单例,保证外部变量无法访问以及创建实例。 下面是一个java经...

  • 2018-07-09学习小结 - 包及访问权限6

    学习 18.5 构造方法私有化——单例设计模式(Singleton) 范例 18-9 自动生成的构造方法的类 包含...

  • Dart中的类——初始化列表、命名构造器、factory构造器、

    Dart中的类——初始化列表、命名构造器、factory构造器、常量构造器、构造器私有化、get和set方法、枚举...

  • 构造方法私有化

    1. 单例设计模式(Singleton) 在正常情况下,如果有一个类,那么只有通过产生对象之后才可以操作这个类范例...

  • 枚举单例原理

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

  • 单例设计模式

    单例设计模式 单例设计模式的引出 当构造方法私有化时,无法从外部进行构造方法的调用。在保证所有方法都不修改的方法时...

  • Java中定义常量方法及建议(Class/Interface)

    Class定义常量方法(推荐方法) 采用“类.常量名”方法进行调用。需要私有化构造方法,避免创建该类的实例。同时不...

  • 第五章:面向对象基础——构造方法私有化。

    本章目标 了解后遭方法私有化的目的 掌握单态设计模式(单例设计模式) 1、具体内容 构造方法私有化 类的封装不光体...

  • dart创建单例类

    1.首先创建出类,例如下: 2.将匿名构造方法私有化: 现在外部已经无法调用Manager的匿名初始化构造方法了。...

网友评论

      本文标题:java构造方法私有化

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