php设计模式(十五)外观模式

外观模式又叫门面模式;现在都是模块化开发了;开发中很多时候都是在使用各种扩展包;或者在外观模式中我们叫做子系统;外观模式的作用就是减少子系统之间的耦合;降低子系统的使用难度;我们举个栗子;实现一个加密文件内容的功能;这个功能分为两部分;1. 用于从文本文件中读取内容的 File 类2. 用于加密内容的 Encrypt 类如果我们每次都直接调用这两个类...
阅读全文

php设计模式(十四)安全组合模式

上篇文章我们讲了透明组合模式;但是也说了透明组合模式中的叶子节点虽然有 add 方法;运行的时候却是抛出错误;这还有个安全的组合模式避免这种情况; 结构Component:只包含树枝节点和叶子节点公共的方法抽象类Composite:树枝节点 有子节点 示例中指 Dir 文件夹Leaf:叶子节点 没有子节点 示例中指 File 文件 示例只包含树枝节点和...
阅读全文

php设计模式(十三)透明组合模式

组合模式用来解决整体和部分可以一致对待的问题;比如说 `文件夹` 和其下的 `文件`;可以复制文件也可以复制整个文件夹;组合模式是将对象组合成树形结构以表示整体和部分的层次结构;可以方便的增加节点;组合模式分为两种;1. 透明模式2. 安全模式 我们先来说透明组合模式; 结构Component:包含树枝节点和叶子节点方法的抽象类Composite:...
阅读全文

解决浏览器自动跳转到广告网站的神器

眼瞅着马上凌晨了;看来今天这篇设计模式文章是写不完了;那就推荐个软件吧;有段时间浏览器访问网站的时候;莫名其妙总会自动跳转到 smartpixel.xyz ;或者其他的一个网站;然后再经过几次重定向;最终会跳到各种不同的广告页面;下载各种杀毒软件或者优化工具都没有毛用;让我不胜其扰;最终找到了一款软件叫 AdwCleaner ;连安装都不需要下载后双...
阅读全文

php设计模式(十二)装饰模式

装饰模式是为已有的类动态添加更多功能而且不改动原来的类;主要是使用对象的关联关系替代继承;就如现实生活中的装饰或者配料一样;我们用吃喝举例;有普通的原味奶茶、手抓饼、烤冷面;还 vip 级的加布丁、加肠、加蛋;使用继承可以很简单的实现;但是经过前面几篇文章的洗礼;我们应该已经有组合优于继承的意识了;把配料独立出来; 结构Component:原...
阅读全文

福利专区

我之前写 文章的时候;在最后放了 laravelchina 的付费教程推广;陆续还是有童鞋使用购买链接的;于是这写个福利专区;给程序猿们带来点优惠;我也能得到平台的一点点返佣; 阿里云优惠券要买阿里云服务器的童鞋可以先点我这个链接领优惠券后再买; 腾讯云新用户的优惠比较大;比如说满200元减150元;满2000元减1500元等; ...
阅读全文

php设计模式(十一)桥接模式

桥接模式有一个常见的示例;有正方形、三角形、圆形等形状;还有红、黄、绿颜色;要实现形状和颜色的组合;how to do it?我这里画了张有点丑但很直观的图;最简单的方式就是通过继承;建12个类就行了;但是如果按照此图的形式来组织代码;当需要增加形状或者颜色的时候;比如说增加一个梯形;这时候就需要再增加3个颜色的梯形类;再如果增加一个蓝色;那...
阅读全文

php设计模式(十)对象适配器模式

对象适配器和上篇的类适配器解决的问题一样;不过是适配器的另一种实现方式;示例中只有 Adapter 类有变化;Adaptee 和 Adapter 部分可以完全一样;咱直奔主题; 结构Adaptee:原本已经有的具体类;Target:目标接口;包含我们希望拥有的方法;Adapter:适配器类;适配 Adaptee 和 Target; 示例Adapt...
阅读全文

php设计模式(九)类适配器模式

适配器其实很容易理解;因为现实中我们天天都在用;就比如说手机充电器;墙上的插孔装修完后就不在变了;手机买回来后我们也不会去改造它;如何让不变的插孔和不变的手机之间能连上充电;并且把220V转换为5V;这时候就需要电源适配器了;软件开发中也是同样的道理;在软件中适配器分为类适配器和对象适配器;我们先来讲类适配器; 结构Adaptee:原本已经有的具...
阅读全文

php设计模式(八)原型模式

原型模式主要用于创建重复的对象;目的是使用 clone 对象来减少 new 对象的开销;如果某个场景需要多次实例化一个类;那就可以尝试用原型模式优化;在 php 中使用原型模式是很简单的;毕竟 php 是世界上最好的语言;我们只需要 clone 就行了;但是 clone 有一些问题;我们下面在代码中讲; 结构抽象的 __clone() 方法; 示...
阅读全文