php设计模式笔记:单例模式

意图:

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

单例模式有三个特点:

1、一个类只有一个实例
2、它必须自行创建这个实例
3、必须自行向整个系统提供这个实例

主要实现:

Singleton定义了一个instance操作,允许外部访问它的唯一实例,instance是一个类方法,负责创建它的唯一实例。

singleton适用场景:

1、当类只能有一个实例而且外部可以从一个公共的访问点访问它。
2、当这个唯一实例应该是通过子类化可扩展的。并且用户应该无需更改代码就能使用一个扩展的实例时。

Singleton实例:

 1 <?php
 2     class singleton{
 3         //静态成品变量 保存全局实例
 4         private static $_instance = NULL;
 5         //私有化构造方法,防止外部访问
 6         private function __construct(){}
 7         //防止用户克隆
 8         private function __clone(){}
 9         //静态工厂方法,返回此类的唯一实例
10         public static function getInstance(){
11             if(!(self::$_instance instanceof self)){
12                 self::$_instance = new self;
13             }
14             return self::$_instance;
15         }
16         //测试
17         public function test(){
18             echo "singleton test!";
19         }
20     }
21
22     class Singletontest{
23         public static function main(){
24             $instance = singleton::getInstance();
25             $instance->test();
26         }
27     }
28
29     Singletontest::main();
30 ?>

php设计模式笔记:单例模式,布布扣,bubuko.com

时间: 2024-08-03 07:08:47

php设计模式笔记:单例模式的相关文章

设计模式笔记——单例模式

单例模式,又叫单态模式或者单件模式. 定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点.单例通常用来代表那些本质上具有唯一性的系统组件(资源). 目的:控制特定的类只产生一个对象. 单例模式可以分为有状态和无状态的.有状态的单例对象一般也是可变的单例对象,多个单例对象在一起可以作为一个状态仓库向外提供服务.没有状态的对象就是不变的单例对象,仅仅作用提供工具函数. 饿汉式:先new 出来实例,再返回. 1 public class Singleton { 2 3 private stat

设计模式 笔记 单例模式 Singleton

//---------------------------15/04/09---------------------------- //Singleton 单例模式-----对象创建型模式 /* 1:意图: 保证一个类仅有一个实例,并提供一个访问它的全局访问点. 2:动机 3:适用性: 1>当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时. 2>当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码 就能使用一个扩展的实例时. 4:结构: Singleton: stati

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

一.引言 最近在设计模式的一些内容,主要的参考书籍是<Head First 设计模式>,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二同时可以给一些初学设计模式的朋友一些参考.首先我介绍的是设计模式中比较简单的一个模式——单例模式(因为这里只牵涉到一个类) 二.单例模式的介绍 说到单例模式,大家第一反应应该就是——什么是单例模式?,从“单例”字面意思上理解为——一个类只有一个实例,所以单例模式也就是保证一个类只

最常用的设计模式(单例模式)

记得刚开始涉足程序的时候, 去笔试 ,发现有一个笔试题经常粗线,写一个单例模式的基本实现, 当时没研究设计模式也就不知为何物, 到今日  , 才发现它已成为我日常开发最常用的一种设计模式. 我写的所有设计模式的代码都会用java 呈现, 虽然第一个学习的是c++但是 最开始作为工作的是java,并且有点偏好java 单例模式 , 意思就是 整个系统仅只有此类的一个实力, 当然这只是狭义的单例,经常看到变种的单例是允许,创建指定数量的实例的 单例模式是一种创建型模式. 它是优化的一种策划, 避免重

(CZ深入浅出Java基础)设计模式笔记

一.面向对象思想设计原则 1.单一职责原则 其实就是开发人员经常说的"高内聚,低耦合",也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个.在设计模式中,所有的设计模式都遵循这一原则. 2.开闭原则 核心思想是:一个对象对扩展开放,对修改关闭.其实开闭原则的意思就是:对类的改动是通过增加代码进行的,而不是修改现有代码.也就是说软件开发人员一旦写出了可以运行的代码,就不应该去改动它,而是要保证它能一直运行下去,如何能够做到这一点呢?这就需要借助于抽象和

java 设计模式之单例模式

--------2015-11-20 14:45:10 java设计模式之单例模式(Singleton): ---应用场合:只需要一个对象就可以了,例如一个朝代一个皇帝. ---作用:保证某个应用程序中某个实例有且只有一个.共同使用一个,节省资源. ---类型:饿汉模式,懒汉模式. 一.饿汉模式(类加载的时候就会实例化,线程安全) 1 package com.sun.singleton; 2 3 //饿汉模式 4 public class Singleton { 5 6 //将构造函数私有化,不

跟我学设计模式视频教程——单例模式,建造者VS工厂方法

课程视频 单例模式 建造者VS工厂方法 课程笔记 课程笔记 课程代码 课程代码 新课程火热报名中 课程介绍 跟我学设计模式视频教程--单例模式,建造者VS工厂方法

Java设计模式:单例模式

概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例. 3.单例类必须给所有其他对象提供这一实例. 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例.在计算机系统中,线程池.缓存.日志对象.对话框.打印机.显卡的驱动程序对象常被设计成单例.这些应用都或多或少具有资源管理器的功能.每台计算机可以有若干个打印机,但只能

[转]JAVA设计模式之单例模式

原文地址:http://blog.csdn.net/jason0539/article/details/23297037 概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例. 3.单例类必须给所有其他对象提供这一实例. 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例.在计算机系统中,线程池.缓存.日志对象.对话