PHP设计模式-代理模式

PHP设计模式-代理模式

前面几篇文章中,我们介绍了了设计模式中的创建型模式。创建型模式主要解决对象的创建问题,封装复杂的创建过程,解耦对象的创建代码和使用代码。其中, - **单例模式** 用来创建全局唯一的对象。 - **工厂模式** 用来创建不同但是相关类型的对象(继承同一父类或者接口的一组子类),由给定的参数来决定创建哪种类型的对象。 - **建造者模式** 是用来创建复杂对象,可以通过设置不同的可选参...

PHP 2020-06-16 PM 69次 0条
PHP设计模式-原型模式

PHP设计模式-原型模式

在前面几篇文章中我们讲了创建型设计模式的单例模式,工厂方法,抽象工厂,以及建造者模式,在这篇文章我将为大家来介绍创建型模式的最后一个模式: **原型(Prototype) 模式**。 ### 场景 现在我们有一个需求 要求有一个简历类,必须要有姓名,可以设置性别年龄,可以设置工作经历。我们可能需要用到多份简历。 很快我们就写出了第一个版本,代码如下: 简历类 Resume.php...

PHP 2020-06-15 PM 60次 0条
PHP设计模式-建造者模式

PHP设计模式-建造者模式

**建造者(Builder)**模式是创建型设计模式的一种。也叫生成器模式。建造者模式可以将一个产品的内部表象与产品的生成过程分割开来。从而可以使一个建造过程生成具有不同的内部表象的产品对象。如果我们使用了建造者模式,那么用户就只需指定需要建造的类型就可以得到他们而具体建造的过程和细节就不需要知道了。 ### 问题 例如, 我们现在要创建一个 房屋House对象。 建造一栋简单的房屋...

PHP 2020-06-13 PM 68次 0条
卧槽!PHP竟然可以同时输出if和else

卧槽!PHP竟然可以同时输出if和else

近日在微博看到了这样一个有趣的代码 ![](https://www.yangpanyao.com/usr/uploads/2020/06/3607336266.png) 代码如下: ```php ``` 以上代码会输出:Bar ![](https://www.yangpanyao.com/usr/uploads/2020/06/3485186487.png) 那么当没有...

PHP 2020-06-10 PM 87次 0条
PHP设计模式-工厂模式(下)

PHP设计模式-工厂模式(下)

在上篇文章[**PHP设计模式-工厂模式(上)**](https://www.yangpanyao.com/archives/159.html "PHP设计模式-工厂模式(上)")中我们介绍了工厂模式中的简单工厂(Simple Factory)和抽象工厂(Factory Method),这篇文章我们来介绍学习一下抽象工厂(Abstract Factory)模式。 ### 抽象工厂(Abst...

PHP 2020-06-10 PM 73次 0条
PHP设计模式-工厂模式(上)

PHP设计模式-工厂模式(上)

**工厂模式**主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。 一般情况下**工厂模式**分为三种类型,简单工厂(Simple Factory),工厂方法(Factory Method),抽象工厂(Abstract Factory)。这三种模式从上到下逐步抽象,并且更具一般性。GOF 在《设计模式》一书中将工厂模式分为两类:工厂方法模式(Fact...

PHP 2020-06-09 PM 73次 0条
PHP设计模式-单例模式

PHP设计模式-单例模式

**单例设计模式**(Singleton Design Pattern)理解起来非常简单。一个类只允许创建一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模式。 ![](https://www.yangpanyao.com/usr/uploads/2020/06/235912165.png) ### 单例模式解决了哪些问题: 1. **保证一个...

PHP 2020-06-03 PM 93次 0条
为你的laravel验证器加上多验证场景

为你的laravel验证器加上多验证场景

**前言** 在我们使用laravel框架的验证器,有的时候需要对表单等进行数据验证,当然laravel也为我们提供了 `Illuminate\Http\Request` 对象提供的 `validate` 方法 以及`FormRequest`和`Validator`。 `FormRequest`通过新建文件将我们的验证部分单独分开,来避免控制器臃肿。如果验证失败,就会生成一个让用户...

PHP,laravel 2020-04-06 PM 201次 0条
php排序算法合集

php排序算法合集

**1.冒泡排序** 冒泡排序(bubble sort)是一种交换排序,操作两个相邻的数据看大小是否满足大小关系要求,如不满足则交换他们的顺序 ,直到没有不满足的数据为止 代码如下: ```php function bubbleAscSort($arr){ $len = count($arr); for ($i=0; $i < $len; ...

PHP,算法 2020-03-18 PM 277次 0条
php解答leetcode第26题-删除排序数组中的重复项

php解答leetcode第26题-删除排序数组中的重复项

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 ...

PHP,leetcode 2019-12-18 PM 637次 2条