千家信息网

php常用的设计模式有哪些

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"php常用的设计模式有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、单例模式
千家信息网最后更新 2026年11月01日php常用的设计模式有哪些

本篇内容介绍了"php常用的设计模式有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、单例模式

1,含义

某个类只有一个实例,自动实例化并向整个系统提供这个类的实例。

即:应用程序只会有这个类的一个实例存在。

多用在数据库操作,线程池,缓存,打印机中。

2,特点

只有一个实例,必须有构造函数,标记为private

向其他成员提供访问这个实例的静态方法

必须自行创建这个实例,拥有一个保存类的实例的静态成员变量

3,代码

class SingleCase {    private static $_instance;    private function __construct() {       echo 'i has been';     }        public static function getInstance() {       if(!isset(self::$_instance)) {           self::$_instance = new self();       }       return self::$_instance;    }        private function __clone() {    }}

备注:存在难以调试,隐藏着依赖关系

二、工厂模式

1,含义

工厂模式是一个类,而这个类包含一些方法,这些方法的作用或者功能就是实例化对象

工厂模式通常用来返回符合类似接口的不同的类

2,特点

工厂模式一般有一个命名为Factory的静态方法

这个静态方法接收一个参数

这个静态方法根据参数,返回不同的对象实例

3,代码

class Factory {    static public function getUser($type) {        if ($type == 1) {            return new A();        }        return new B();    }}interface FetchName {    public function getName()}class A implements FetchName {    public function getName()}class B implements FetchName {    public function getName()}//使用$user = Factory::getUser(1);$user->getName();

备注:有啥用?

如果一个系统,很多地方用 new User() 这种方式。有一天 new User('A');增加个参数,所有地方都需要变更;

如果一个系统,使用工厂模式User::getObj('1'); 假如参数1返回new User()这个对象实例; 有一天new User() 增加个参数,我只需要改工厂中的类实例。

三、观察者模式

1,含义

观察者模式为您提供了避免组件之间紧密耦合的另一种方法

分为主题和观察者,都需要实现接口和方法

主题里面进行观察者注册,并设置一个方法,这个方法的作用是调用观察者的方法进行通知观察者

2,特点

针对接口编程,不针对实现编程

观察者模式定义对象的一对多依赖

当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新

3,代码

class Paper {    private $myObj = [];    public function register($sub) {        $this->myObj[] = $sub;    }    public function setMessage(){      if ($this->myObj) {          foreach ($this->myObj as $obj) {              $obj->update();          }      }    }}interface Observerable{    public function update();}class Subscriber implements Observerable{    public function update(){        echo "Callback\n";    }}

备注:

$paper = new Paper();
$paper->register(new Subscriber());
//$paper->register(new Subscriber1());
$paper->setMessage();

只要任何类注册,调用setMessage()方法。其他注册过的类都会收到update()方法的通知。

"php常用的设计模式有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

方法 实例 模式 观察者 观察 工厂 参数 对象 静态 代码 含义 备注 接口 特点 系统 常用 设计模式 设计 不同 主题 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 金融科技还是互联网 中国互联网科技发展 腾讯科技 互联网女皇 万达互联网科技 科技互联网创业计划书 深圳卡尔迅互联网科技有限公司怎么样 西藏七维空间互联网科技有限公司 互联网时代科技改变生活 重庆互联网医院沙龙医盟信息科技 深圳育鹏互联网科技有限公司招聘 河南住房之家互联网科技 互联网行业科技股 无锡工业互联网科技有限公司 深圳互联网科技的发展 梅州GM互联网络科技有限公司 启辰互联网科技 城市宝互联网科技有限公司 图游互联网科技 昆明中奇联合互联网科技 银川新华互联网科技学校是国营吗 万易互联网科技有限公司 开启互联网科技时代小说 中国的互联网科技企业的崛起 福州新华互联网科技学校 知乎 宝灵互联网科技有限公司 中国互联网十大科技股排名 国大互联网教育科技有限公司薪资 互联网科技资金流入 美国互联网科技公司 深圳互联网科技园地址
0