PHP实现常用设计模式之单例模式

设计模式中的单例模式是一个简单但是会经常用到的设计模式,那怎么理解以及它有什么用呢?
PHP以及其他的Java,C++等面向对象编程语言在开发中类肯定是要经常用到的,很多时候对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。
如何做到这点呢?
我们通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例

<?php
//单例模式
class sigle{
    protected static $ins = null;//定义一个静态变量用以保存类自身的实例
    public static function getIns(){
    if(self::$ins === null){
        self::$ins = new self();
    }
    return self::$ins;
    }
    //以下措施是为了避免通过继承,克隆达到多个实例的目的
    //方法前加final,则方法不能被覆盖,类前加fianl,则类不能被继承
    final protected function __construct(){

    }
    //封锁clone
    final protected function __clone(){

    }
}
$s1 = sigle::getIns();
$s2 = sigle::getIns();
if($s1 === $s2){
    echo '是一个对象';
}else{
    echo '不是一个对象';
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值