李维山
后端架构师
展开
-
【PHP设计模式00】23种设计模式实战
所谓设计模式,就是特定环境下同类问题的一种解决方案,与语言无关,随着各种各样问题的出现,编程界前辈们已经总结出一些具有共性的问题,及与其对应的解决方案。选择正确的设计模式,使得开发过程更高效、便捷,代码的可重用性、灵活性更高。最近写一些关于PHP设计模式的文章,对常用设计模式进行总结,其中参考了关于设计模式的书籍、前辈的博客,以及自己的实际工作经验与体会。才疏学浅,如有疏漏,敬请交流。................更新中................原创 2024-02-25 15:43:00 · 254 阅读 · 0 评论 -
【PHP设计模式08】装饰模式
装饰模式,又称装饰器模式 或 装饰者模式 或 油漆工模式,通过创建一个“装饰对象”,在不改变原有类和使用继承的情况下,动态地扩展一个对象的功能,比直接生成子类继承更加灵活,可以通过多个不同的具体装饰类,创建多个不同的行为组合。以上就是装饰模式的基本形式,在实际开发中,往往需要对现有产品扩展新的功能,在不改变原有代码的情况下进行动态扩展,这种情况就可以使用装饰模式来实现。原创 2024-02-27 00:54:01 · 303 阅读 · 0 评论 -
【PHP设计模式07】桥接模式(桥梁模式)
桥接模式,又称桥梁模式,或是柄体模式或接口模式。可将抽象部分与它的具体实现部分分离,使它们都可以独立地变化组合。桥接模式的主要目的是通过组合的方式建立两个类之间的联系,而不是继承,是比多重继承更好的替代方案,核心在于用组合/聚合的方式共享一些能用的方法,解耦抽象和实现。原创 2024-02-26 18:44:57 · 126 阅读 · 0 评论 -
【PHP设计模式06】适配器模式(变压器模式)
【适配器模式】适配器模式,也叫做变压器模式 或者 包装器模式,将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,也可以理解为某种协议,使两个不同的类之间可以通过协议合作来达到某种目的。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。原创 2024-02-25 20:57:00 · 221 阅读 · 2 评论 -
【PHP设计模式05】建造者模式(生成器模式)
建造者模式,可以强制实行一种分步骤进行的建造过程,将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象,客户不必知道产品内部组成的细节。由于建造零件的过程很复杂,因此,这些零件的建造过程往往被“外部化”到另一个乘坐建造者的对象里,建造者对象返还给客户端的是一个全部零件都建造完毕的产品对象。它将产品的结构和建造过程对客户端隐藏起来。原创 2024-02-25 00:54:04 · 285 阅读 · 0 评论 -
【PHP设计模式03】抽象工厂模式
前面讲的工厂方法模式,每增加一个产品都需要增加对应的工厂,这样就会存在很多工厂,但是在现实生活中的有些时候,人们并不关心产品是由哪个工厂制造的,就像一个服装厂既可以生产男装,也可以生产女装,我们只需造一个服装厂同时生产一个。抽象工厂模式,则为一个产品族提供了统一的创建接口,当需要这个产品族的一系列相关对象时,就可以为此系列的产品族创建一个具体的工厂类来实现该接口。示例:下面以一个服装厂生成衣服为例,服装厂有两个分厂,分别负责生产男装和女装,每增加一个产品都需要增加对应的工厂。原创 2024-02-23 14:57:00 · 284 阅读 · 0 评论 -
【PHP设计模式02】工厂方法模式
【工厂方法模式】 工厂方法模式,简称工厂模式。说到工厂,我们可以联想到一个服装厂可以生产出各式各样的衣服,随着市场的需要,也会生产出新的款式的衣服,但是我们并不能预测新款是什么样子,设计师设计出来交给工厂安排到对应生产线上生产就完了。 在编程中与之相似的是,有时候我们在创建对象的过程中,并不能确定类一定创建(实例化)出哪一种类型的对象,我们更希望根据不同参数得到不同的类...原创 2020-08-24 14:35:21 · 234 阅读 · 2 评论 -
【PHP设计模式01】单例模式
【写在前面】 最近写一些关于PHP设计模式的文章,对常用设计模式进行总结,其中参考了关于设计模式的书籍、前辈的博客,以及自己的实际工作经验与体会。才疏学浅,如有疏漏,敬请交流。 所谓设计模式,就是特定环境下同类问题的一种解决方案,与语言无关,随着各种各样问题的出现,编程界前辈们已经总结出一些具有共性的问题,及与其对应的解决方案。选择正确的设计模式,使得开发过程更高...原创 2019-12-09 23:44:25 · 157 阅读 · 1 评论 -
【PHP设计模式04】原型模式(克隆模式)
【克隆模式】 克隆模式是通过内存拷贝的方法拷贝父本对象的所有属性,分配一块新的内存空间给新的对象,比 new 的方式创建对象性能更好。通过克隆的方式创建对象,不会执行类的构造函数。 结构:使用Clone方法 示例:以克隆一个人为例<?phpnamespace app\index\controller;class Test{ private $name; private $age; public function __con...原创 2020-08-24 18:29:51 · 197 阅读 · 0 评论