单例模式其实就是每次实例化时都会得到一个相同的对象.

单例模式的写法有个简单的口诀:三私一公即一个私有的静态属性,私有的构造方法,私有的克隆方法还有一个公共的静态方法.

<?php
class Cat
{
  //私有的静态属性
  private static $instance;

  //私有的构造方法
  private function __construct(){
    echo "这是一个单例模式";
  }

  //公共的静态方法
  public static function getInstance(){
    if(!self::$instance instanceof self){
      self::$instance = new self;
    }
    return self::$instance;
  }

// 私有的克隆方法
  private function __clone(){

  }
}

$cat = Cat::getInstance();

$cat1 = Cat::getInstance();

if($cat === $cat1){
  echo "啊,成功了!";
  }else{
  echo '怎么会失败';
}

输出结果:

这是一个单例模式啊,成功了!

转载于:https://www.cnblogs.com/catcrazy/p/6288184.html

设计模式(一)----单例模式相关推荐

  1. socket可以写成单例嘛_精读《设计模式 - Singleton 单例模式》

    Singleton(单例模式) Singleton(单例模式)属于创建型模式,提供一种对象获取方式,保证在一定范围内是唯一的. 意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 其实单例模 ...

  2. C#设计模式(1)——单例模式

    原文地址:http://www.cnblogs.com/zhili/p/SingletonPatterm.html 一.引言 最近在设计模式的一些内容,主要的参考书籍是<Head First 设 ...

  3. java设计模式之单例模式(七种方法)

    单例模式:个人认为这个是最简单的一种设计模式,而且也是在我们开发中最常用的一个设计模式. 单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个 ...

  4. java单例模式的七种写法_Java设计模式之单例模式的七种写法

    什么是单例模式? 单例模式是一种常见的设计模式,单例模式的写法有很多种,这里主要介绍三种: 懒汉式单例模式.饿汉式单例模式.登记式单例 . 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类 ...

  5. go设计模式之单例模式

    在这里插入图片描述# go设计模式之单例模式 在软件开发时,经常会遇到有些对象需要保证只有一个实例的,那么这种设计模式就应用而生. 定义 单例模式,也叫单子模式,是一种常用的软件设计模式,属于创建型模 ...

  6. 一篇博客读懂设计模式之---单例模式

    一篇博客读懂设计模式之---单例模式 一.  单例模式 单例对象(Singleton)是一种常用的设计模式.在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在.这样的模式有几个好处 ...

  7. Java 设计模式(3)单例模式

    前言 概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自 ...

  8. socket可以写成单例嘛_精读设计模式 Singleton 单例模式

    Singleton(单例模式) Singleton(单例模式)属于创建型模式,提供一种对象获取方式,保证在一定范围内是唯一的. 意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 其实单例模 ...

  9. 设计模式之单例模式——Singleton

                        设计模式之单例模式--Singleton 设计意图: 保证类仅有一个实例,并且可以供应用程序全局使用.为了保证这一点,就需要这个类自己创建自己的对象,并且对外有 ...

  10. 实践GoF的设计模式:单例模式

    本文分享自华为云社区<[Go实现]实践GoF的23种设计模式:单例模式>,作者: 元闰子. 简述 GoF 对单例模式(Singleton)的定义如下: Ensure a class onl ...

最新文章

  1. Linux下安装数据库
  2. 在php中_post啥意思,php中$_post什么意思
  3. 古塔问题matlab,基于 Matlab 对古塔变形趋势探究的数学模型
  4. 珠海网络推广浅析网站优化面对搜索引擎算法更新怎样才能应对自如?
  5. SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)
  6. linux on win原理,linux on win10 上手体验
  7. auto errored after 报错解决_漫谈数据倾斜解决方案(干货)
  8. pta 计算圆周率(C语言实现)
  9. 移动营业厅办业务发现的几个需改问题(转
  10. STM32 CubeIDE快速创建工程(图文详解)
  11. 会议OA项目之我的审批签字功能
  12. 机器人方队解说词_方队解说词3篇
  13. A detailed derivation for the Bias Variance tradeoff Decomposition
  14. 中国汽车高级驾驶辅助系统(ADAS)行业十四五规划及投资动态分析报告2022-2028年版
  15. 播动师,直播广场,一目了然看到直播态势
  16. 网工必考:HCIP认证(华为认证ICT高级网络工程师)
  17. linux 下跑通pointnet++网络模型
  18. Android电源管理分析
  19. SCADA系统一次系统与二次系统模型
  20. Henry前端笔记之 宏观世界

热门文章

  1. c++11-final
  2. Hibernate本地SQL查询SQLQuery
  3. Liferay门户与CAS实现SSO单点登录
  4. 【重要】使用Git命令行上传到GitHub上
  5. Gmail技巧之无限别名
  6. C# 之 6.0 新特性
  7. Maven 进行多环境配置,使用profile文件进行配置
  8. Silverlight WCF RIA服务(二十七)Silverlight 客户端 8
  9. 一步一步实现自己的模拟控件(6)——控件树及控件区域
  10. 赶走最令人不愉悦的一类BUG,你准备好了么?