![](https://img-blog.csdnimg.cn/c7dbdda478604a1ba3b3c87c269ba528.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
PHP设计模式
了解设计模式,提高开发思维,写出世界上最好的语言~~
瞎玩儿~
瞎玩儿~
展开
-
PHP设计模式-单例模式
一、概述“单例模式”是一种常见的设计模式,顾名思义单例模式是为了保证在整个程序中只有一个类的实例供外界使用二、核心保证类只有一个实例类的自行创建实例禁止外部对该类进行实例化、克隆、序列化、继承三、架构图四、代码示例<?php/* * final 禁止类被继承 */final Class Singleton{ /* * 私有静态变量存储实例 */ private static $instance; /* * 私原创 2021-11-16 11:36:56 · 2418 阅读 · 0 评论 -
PHP设计模式-观察者模式
一、概述观察者模式又称发布-订阅模式,当一个对象状态发生变化时,依赖它的对象会收到通知,自动更新,观察者模式比较贴切于业务二、核心属于行为型模式将行为独立模块化,降低行为和主题的耦合性,非侵入式通知和更新机制消息队列、事件都使用了观察者模式三、结构图四、代码示例<?php/* * 观察者模式 *///定义观察者接口interface SplObserver{ public function update(SplSubject $subject); //注册观原创 2021-11-17 15:10:56 · 133 阅读 · 0 评论 -
PHP设计模式-适配器模式
一、概述将一个类的接口转换成兼容接口,使原本由于接口不兼容不能一起工作的类可以一起工作,通俗的讲:将已经存在的的类创建一个“中间类”,用户直接调用该中间类二、核心将不同规格的设备通过统一规格的适配器对接到你的系统中常用于和第三方库结合使用,因为第三方库的代码不允许修改三、结构图四、代码示例<?php/* * 适配器模式 *//* * 类Cat和Dog已经存在,我们需要设计适配器类继承主类,对外开放统一调用 */class Cat{ public func原创 2021-11-17 10:15:24 · 216 阅读 · 0 评论 -
PHP设计模式-注册模式
一、概述注册模式是一种常见结构型的设计模式、将实例注册到一个注册器中,供全局使用二、核心解决了全局共享三、结构图四、代码示例<?php/* * 解决全局共享和交换对象 * 将类的对象注册到全局类上,在需要使用的时候可以直接访问 */class Register{ protected static $globalArr = array(); static function set($alias, $object) { self::$原创 2021-11-16 17:32:35 · 461 阅读 · 0 评论 -
PHP设计模式-简单工厂模式与策略模式区别
一、区别简单工厂模式注重于返回对象,工厂模式是差异类继承抽象类,然后工厂直接调用对应的差异类策略模式注重于返回行为结果,策略模式更加侧重于算法的替换,策略模式也是差异类继承抽象类,通过客户端实例化差异类,在通过工厂调用行为(方法)二、代码示例<?php/* * 区别于工厂模式和策略模式 * *///——————————————————————————————————————————————————————工厂模式——————————————————————————————————原创 2021-11-16 17:17:26 · 278 阅读 · 0 评论 -
PHP设计模式-策略模式
一、概述一个类的行为或其算法可以在运行时更改,策略模式中,我们创建一个context对象,该对象随着策略对象的改变而改变,从而改变执行的方法,通俗的描述:传入不同的对象,运算该对象的方法得到不同的结果二、核心定义一系列算法,将这些算法封装起来、并且能相互替换使用策略模式可以使算法自由的切换,避免太多if else,代码更加优雅、更容易扩展三、结构图四、代码示例<?php/* * 策略模式 *///抽象策略类interface Run{ public funct原创 2021-11-16 17:00:26 · 71 阅读 · 0 评论 -
PHP设计模式-抽象工厂模式
一、概述抽象工厂模式是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式。二、核心通过一个超级工厂管理所有的子工厂三、架构图四、总结一个抽象产品类派生多个具体产品类(EatInterface=>[CatEatClass,DogEatClass], RunInterface=>[CatRunClass, DogRunclass])一个抽象工厂类可以派生出多个具体工厂类(FactoryInterface=>[CatFactory,原创 2021-11-16 15:44:41 · 303 阅读 · 0 评论 -
PHP设计模式-工厂方法模式
一、概述属于23中设计模式中的创建型设计模式,注重于获取实例(对象),解耦、复用、方便扩展二、核心对简单工厂模式进行抽象化,可以实现一个抽象工厂类可以派生出多个工厂类真正实现了SOLID中的D【依赖倒置】三、结构图四、代码示例<?php/* * 工厂方法模式(Factory Method) */interface AnimalInterface{ public function run(); public function eat();}clas原创 2021-11-16 14:51:48 · 112 阅读 · 0 评论 -
PHP设计模式-静态工厂模式
一、概述和简单工厂模式一样,不属于23种标准设计模式,属于一种编程风格。将简单工厂模式的类改为静态二、核心相对于简单工厂模式,工厂方法为静态三、代码示例<?php/* * 静态工厂模式(Static Factory) */interface AnimalInterface{ public function run();}class Cat implements AnimalInterface{ public function run() {原创 2021-11-16 14:07:32 · 127 阅读 · 0 评论 -
PHP设计模式-简单工厂模式
一、概述简单工厂模式不属于23种标准设计模式,属于一种编程风格通过不同的参数动态的创建一个实例化对象二、核心通过传入不同的参数获取不同的对象将对象的创建和使用分开单独创建一个类来创建其它类的实例,被创建的类通常具有相同的特性三、架构图四、代码示例<?php/* * 简单工厂模式(Sipmple Factory) */interface AnimalInterface{ public function run();}class Cat implem原创 2021-11-16 13:43:32 · 137 阅读 · 0 评论