PHP面向对象基础四

单例模式

单例模式singleton,是一种类的设计最多只能产生一个对象的设计思想

首先定义一个空类,叫做singleton

总结:单例模式就是最多只能得到一个对象

私有化方法:静止在类外无限实例化(new)对象

私有化克隆方法:静止对象无限克隆

私有化静态属性:保存类内部实例化得到的对象

公有化静态方法:允许外部通过待用类内部的方法获取对象

<?php
    //单例模式
    class singleton{
        //静态属性,保存生产出来的对象
        private static $object = null;

        //私有化构造方法
        private function __construct(){
            echo __METHOD__;
        }
        //类入口,允许进入类的内部
        public static function getInstance(){
            //判定静态属性是否存在当前类的对象
            if(!self::$object instanceof self){
                //当前保存的object数据不是singleton对象
                //产生对象
               self::$object = new self();               
            }

            //返回对象
            return self::$object;
        }
        //私有化克隆
        private function __clone(){}
    }
    //实例化
    // $s1 = new singleton;
    // $s2 = new singleton;
    
    //静态方法进入类内部
    $s = singleton::getInstance();
    $s1 = singleton::getInstance();
    var_dump($s,$s1);

    // 克隆对象会产生新的对象,必须禁止克隆,可以通过私有化克隆方法解决
    // $s2 = clone $s;
    // var_dump($s2);

?>

工厂模式

由一个地方产生对象,其他位置不需要二外实例化对象,从而可以方便后期代码的统一维护,而工厂模式下可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值