千家信息网

php常用的设计模式有哪些

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容介绍了"php常用的设计模式有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、单例模式
千家信息网最后更新 2025年12月02日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安全错误 数据库的锁怎样保障安全 简述数据库设计过程中 安卓软件开发学了什么软件 服务器硬盘坏了会影响系统么 提升网络安全能力与水平研讨 目前没有的产品或服务器 连云港海航软件开发业务流程 办公室工作网络安全 天津1u机架式服务器厂家 数据库共享内存连接方式 seafile数据库目录 压力位移控制软件开发 物流节点网络数据库需要哪些表格 老乡网络技术 视频综合管理服务器品牌 代理服务器伪装成指定ip上网 德惠有名的网络技术咨询诚信经营 自荐书模板软件开发 网络安全监察局电话 解除数据库错误 13条军营网络安全宣传标语 书店数据库毕业设计系统任务书 网络技术带来的发展影响 跨服务器数据库查询 tbc 部落哪个服务器出名 数据库视图管理实验原理 昆明软件开发公司招聘待遇 青少年网络安全观后感作文 网络安全靠人民行书 sql数据库是基于 在建工程会计账务处理软件开发
0