php 单一职责,PHP之单例模式(职责模式)

本文详细解析了PHP中的单例模式,介绍了如何通过私有构造函数、静态实例变量和getInstance方法来确保类的唯一实例。重点讲解了单例模式的构造、克隆限制和错误处理。适合初学者掌握面向对象编程中的设计模式应用。
摘要由CSDN通过智能技术生成

简单的说,一个对象(在学习设计模式之前,需要比较了解面向对象思想)只负责一个特定的任务;

单例类:

1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化;

2、拥有一个保存类的实例的静态成员变量

3、拥有一个访问这个实例的公共的静态方法(常用getInstance()方法进行实例化单例类,通过instanceof操作符可以检测到类是否已经被实例化)

另外,需要创建__clone()方法防止对象被复制(克隆)<?php

/**

* Created by PhpStorm.

* User:

* Date: 2017/1/2

* Time: 下午3:32

*/

class Single {

//保存实例的私有静态实例变量

private static $instance;

//private标记的构造方法,方式通过其他方式实例化

private function __construct() {

echo "this is construct function";

}

//创建clone方法防止被克隆

public function __clone() {

trigger_error("Clone is not allowed ", E_USER_ERROR);

}

//单例方法,用户访问实例的公共静态方法

public static function shareInstance() {

//instanceof:判断instance是不是self的实例或者子类

if (!(self::$instance instanceof self)){

self::$instance = new self();

}

return self::$instance;

}

}

trigger_error() 函数创建用户级别的错误消息。

trigger_error() 函数能结合内置的错误处理器所关联,或者可以使用用户定义的函数作为新的错误处理程序(set_error_handler())。trigger_error(errormsg,errortype);参数描述errormsg必需。规定错误消息。最大长度 1024 字节。

errortype可选。规定错误类型。可能的值:E_USER_ERRORE_USER_WARNINGE_USER_NOTICE(默认)

简单的说,一个对象(在学习设计模式之前,需要比较了解面向对象思想)只负责一个特定的任务;

单例类:

1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其自身实例化;

2、拥有一个保存类的实例的静态成员变量

3、拥有一个访问这个实例的公共的静态方法(常用getInstance()方法进行实例化单例类,通过instanceof操作符可以检测到类是否已经被实例化)

另外,需要创建__clone()方法防止对象被复制(克隆)<?php

/**

* Created by PhpStorm.

* User:

* Date: 2017/1/2

* Time: 下午3:32

*/

class Single {

//保存实例的私有静态实例变量

private static $instance;

//private标记的构造方法,方式通过其他方式实例化

private function __construct() {

echo "this is construct function";

}

//创建clone方法防止被克隆

public function __clone() {

trigger_error("Clone is not allowed ", E_USER_ERROR);

}

//单例方法,用户访问实例的公共静态方法

public static function shareInstance() {

//instanceof:判断instance是不是self的实例或者子类

if (!(self::$instance instanceof self)){

self::$instance = new self();

}

return self::$instance;

}

}

trigger_error() 函数创建用户级别的错误消息。

trigger_error() 函数能结合内置的错误处理器所关联,或者可以使用用户定义的函数作为新的错误处理程序(set_error_handler())。trigger_error(errormsg,errortype);参数描述errormsg必需。规定错误消息。最大长度 1024 字节。

errortype可选。规定错误类型。可能的值:E_USER_ERRORE_USER_WARNINGE_USER_NOTICE(默认)

更多PHP之单例模式(职责模式)相关文章请关注PHP中文网!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值