PHP 设计模式七 单例模式

486 阅读2分钟

「这是我参与11月更文挑战的第19天,活动详情查看:2021最后一次更文挑战

课程背景

  • 最近完成一个项目 对于代码分层有了一丢丢了解 但是架构设计合理性上存在问题
  • 万物看本质基本功硬 底层知识扎实才能写出更优质的代码 才能走得更远
  • 作为努力奔跑的程序员 又一次的去温习 思考 设计模式等基础的php知识
  • 因为掘金粑粑有奖励,所以把学习的笔记整理记录并分享了出来。

正文开始

上面介绍了一些php的基础知识,这里开始正式介绍一些设计模式。

单例模式

比如说数据库链接的操作,链接数据库很是消耗资源。如果我们不处理创建数据库的操作,每次都用new创建。那一个请求 响应会花费更长的时间。这就直接影响到了整个站点体验。

1 私有化构造方法,就保证当前类没有办法用new创建。

image.png 此时当使用new创建对象的时候会报错。

2 提供出口给别的方法调用

    static function getInstance(){
        return new self;
    }

3 私有变量保存对象 image.png

此时当我们访问对象时候,访问的是同一个对象。

image.png

image.png 4 完成单例以后,结合之前编写的工厂模式。工厂模式中也不可以使用new关键字创建了。也需要调用指定的实例化方法的方式。

<?php
namespace Liiy;

class Factory{

    public static function createDb(){
        return Db::getInstance();
    }
}

总结这样通过工厂类方法创建出来的对象都是单例对象,提高了执行的效率。