单例模式再思考

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Mabanana/article/details/82718010

【前言】

  最近在看这个软考视频,然后在面向对象技术这一视频中又一次提到了设计模式,故有了此次的思考。

【单例模式概念】

  既然讲的是单例模式,那么就先来说一下单例模式的概念:
  单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例
  单例模式会阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。

【单例模式结构图】

这里写图片描述

【单例模式代码实现】

  本次只总结常用的“懒汉式”

public class Singleton{
    private static Singleton instance=null;
    public static Singleton getInstance(){
        if(instance==null)
        {
               instance=new Singleton();
        }
        return instance;
    }
    private Singleton(){
    }
}

【单例模式过程】

  首先,将该类的构造函数私有化。
  其次,在本类中自定义一个对象(因为禁止其他程序创建该类的对象,所以就要自己创建一个供程序使用,否则类就没有办法使用,也就不是单例)
  最后,提供一个可访问类自定义对象的类成员方法(对外提供该对象的访问方式),也就是不能在该类的其他地方创建对象,而是通过该类自身提供的方法访问类的那个自定义对象。
  注意:程序调用类中方法的方式只有两种:
  1、创建类的一个对象,用该对象去调用类中方法
  2、使用类名直接调用类中的方法,格式为“类名.方法名()”
  又因为上边的时候提到,构造函数私有化之后第一种方法就不能使用,所以只能去使用第二种方法。又因为使用类名直接调用类中方法,类中的方法必须是静态的,而静态方法不能访问非静态成员变量,因此类自定义的实例变量也必须是静态的。

【总结】

  不断回顾旧知,积累…,如有什么补充,还请大家提出。

阅读更多

没有更多推荐了,返回首页