PHP 设计模式七 单例模式

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

课程背景

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

正文开始

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

单例模式

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

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

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

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

1
2
3
php复制代码    static function getInstance(){
return new self;
}

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

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

image.png

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

1
2
3
4
5
6
7
8
9
php复制代码<?php
namespace Liiy;

class Factory{

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

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

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%