美文网首页
单例模式示例

单例模式示例

作者: 禾叶super | 来源:发表于2019-12-11 18:20 被阅读0次

    所谓的单例即类在创建对象时只创建一个对象。
    示例1

       public static void main(String[] args) {
            Person person1 = new Person();
            Person person2 = new Person();
            System.out.println("person1:"+person1.hashCode() );
            System.out.println("person2:"+person2.hashCode() );
        }
    

    执行结果:


    image.png

    如果使用示例1来创建Person 类的对象,那么将会在每次执new时,创建不同的对象。如果我们能够保证类只创建一个实例,并且提供一个访问它的全局访问点,就能够控制类实例的个数。这就是单例模式要做的事情。
    实例2:把Person改为单例模式

    public class Person {
        // 创建Person的一个对象
        private static Person person = new Person();
        // 构造函数私有化,不能再使用new来创建对象
        private Person(){};
        // 提供获取已创建的唯一对象的方法
        public static Person getInstance(){
            return person;
        }
    }
    public class Test {
        public static void main(String[] args) {
            Person person1 = Person.getInstance(); // 在这里如果使用new创建对象会报错
            Person person2 = Person.getInstance();
            System.out.println("person1:"+person1.hashCode() );
            System.out.println("person2:"+person2.hashCode() );
        }
    }
    

    运行结果


    image.png

    由实例2可以看出无论何时调用Person.getInstance()都只能生成一个实例。到这里单例模式的简单示例就完成了。那么程序中为何要使用单例模式呢,单例和多例的本质区别又是什么呢?现在让我们一起在工作的过程中去思考这些问题。

    相关文章

      网友评论

          本文标题:单例模式示例

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