• 创建型—单例模式


    1、单例模式的意图:

      保证一个类仅有一个实例,并提供一个访问它的全局访问点。

      所谓的全局访问点,在代码层次表现为类中的静态函数,通过类名即可调用。

    2、单例模式类图:

      

    角色

    • SingletonClass:通过一个类的public static的成员函数,允许用户类访问它的唯一实例;同时用一个私有的SingletonClass类型的静态成员变量来引用它的唯一实例。

    协作

    • 用户类只能通过单例类(SingletonClass)公开的静态成员函数来获取单例类的唯一实例。

    3、适用性:

    • 当类只能有一个实例而且用户可以从一个众所周知的访问点访问它时。
    • 当类可通过子类化来进行扩展,且系统中只能存在所有子类中的一个时。

    4、代码实现:

     1 package com.crazysnail.singleton;
     2 
     3 public class Singleton {
     4     private static Singleton theSingleton;
     5     
     6     public static Singleton getInstance(){
     7         if(theSingleton==null)
     8             theSingleton = new Singleton();
     9         
    10         return theSingleton;
    11     }
    12     
    13     protected Singleton(){
    14         /*对类中的数据成员进行初始化操作*/
    15     }
    16     
    17     /*类的其他域和相关的操作*/
    18 }

    5、单例模式的特点:

    • 确保了实例的唯一性
    • 由类本身控制了唯一实例的实例化过程,可以方便的修改类的实例化过程
    • 每次对象请求引用时都要检查是否存在类的实例,这造成一定的开销
  • 相关阅读:
    小记面向对象
    公司分层思想的演化历程
    我对uml类图关系的理解
    cms真实问题的来源以及模拟解决方案
    HTTP 协议基础
    Requests库
    接口测试概念
    Python中的strip()函数的用法
    Robot Framework环境搭建
    Python unittest excel数据驱动
  • 原文地址:https://www.cnblogs.com/-crazysnail/p/3927767.html
Copyright © 2020-2023  润新知