zoukankan      html  css  js  c++  java
  • 设计模式之单例模式

    什么是设计模式,我们写代码就是为了解决一些实际的问题,当然在我们之前已经有很多优秀的程序员写了很多的代码,总结出来了某一类问题成熟的解决方案,我们拿来用就可以了。

    设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    那什么是单例模式呢,它有什么具体的作用呢?

    单例模式说直白一点就是只有一个实例,不管实例化多少次就只有一个实例。

    举个例子来说,我们打开qq音乐,不管你打开几次,都只会有那一个qq音乐,打开多了放了好几首歌没法听了;再比如说回收站,你打开再多次只会打开一个。这就是用的是单例设计模式。

    那在python里面怎么怎么实现单例模式呢,单例模式就是只有一个实例,那肯定是指类在实例化的时候,只会实例化一个,就需要用到类里面的一个内置函数__new__,类就是通过这个函数来进行实例化操作的。它在__init__之前先执行

    那我们知道类是通过__new__函数来进行实例化的,那就好办了,思路就是先判断一下这个类有没有被实例化过,如果实例化过了,那我们就不要调用继续实例化了,返回原来的那个实例,如果没有被实例化才继续实例化。

    先写一个普通的类,看一下实例化之后的内存地址,可以看到,正常的一个类,实例化两次,内存地址是不一样的,不是一个对象

    再写单例模式,再实例化看内存地址

    ps:重写__new__这个方法,如果想实例化必须调用一个父类的__new__(cls)方法,要不然不能实例化,单例模式的写法也很单一,死记硬背就可以了,代码如下:

  • 相关阅读:
    1.4.2.3. SETUP(Core Data 应用程序实践指南)
    1.4.2.2. PATHS(Core Data 应用程序实践指南)
    1.4.2.1. FILES(Core Data 应用程序实践指南)
    1.4.2. 实现 Core Data Helper 类(Core Data 应用程序实践指南)
    1.4.1. Core Data Helper 简介(Core Data 应用程序实践指南)
    1.4. 为现有的应用程序添加 Core Data 支持(Core Data 应用程序实践指南)
    1.3.2. App Icon 和 Launch Image(Core Data 应用程序实践指南)
    1.3.1. 新建Xcode项目并设置故事板(Core Data 应用程序实践指南)
    php验证邮箱是否合法
    如何使js函数异步执行
  • 原文地址:https://www.cnblogs.com/xiaowenshu/p/9916744.html
Copyright © 2011-2022 走看看