PHP完整实战23种设计模式
韩淼燃
最近在更新运维专栏。欢迎大家来点赞,关注。
展开
-
php适配器模式
把实现了不同接口的对象通过适配器的方式组合起来放在一个新的环境<?phpnamespace adapter;/** * 高级媒体接口 */interface MediaAdvanceInterface{ public function playMp4($file=''); public function playWma($file='');}<?phpnamespace adapter;/** * mp4高级播放器实体 */class Advan原创 2020-12-02 17:17:11 · 453 阅读 · 0 评论 -
php外观模式
把系统中类的调用委托给一个单独的类,对外隐藏了内部的复杂性,很有依赖注入容器的感觉哦<?phpnamespace facade;/** * 动物接口 */interface AnimalInterface{ /** * 生产方法 * * @return string */ public function produce();}<?phpnamespace facade;/** * 实体鸡工厂 */class Chicke.原创 2020-12-02 15:59:23 · 179 阅读 · 0 评论 -
php享元(轻量级)模式
结构型模式php享元(轻量级)模式就是缓存了创建型模式创建的对象,不知道为什么会归在结构型模式中,个人觉得创建型模式更合适,哈哈~其次,享元强调的缓存对象,外观模式强调的对外保持简单易用,是不是就大体构成了目前牛逼哄哄且满大的街【依赖注入容器】下面我们借助最简单的’工厂模式‘来实现享元模式,就是给工厂加了个缓存池<?phpnamespace flyweight;/** * 动物接口 */interface AnimalInterface{ /** ...原创 2020-12-02 15:37:26 · 195 阅读 · 1 评论 -
php桥接模式
结构型模式php桥接模式基础的结构型设计模式:将抽象和实现解耦,对抽象的实现是实体行为对接口的实现例如:人 => 抽象为属性:性别 动作:吃 => 人吃的动作抽象为interface => 实现不同的吃法<?phpnamespace bridge;/** * 吃接口 */interface EatInterface{ /** * 吃 * * @param string $food 食物 * @return mixed ...原创 2020-12-02 14:57:04 · 262 阅读 · 0 评论 -
建造者模式
创建型模式php建造者模式简单对象构建复杂对象基本组件不变,但是组件之间的组合方式善变下面我们来构建手机和mp3手机简单由以下构成 手机 => 名称,硬件, 软件硬件又由以下硬件构成 硬件 => 屏幕,cpu, 内存, 储存, 摄像头软件又由以下构成 软件 => android, ubuntump3简单由以下构成 手机 => 名称,硬件, 软件硬件又由以下硬件构成 硬件 => cpu, 内存, ...原创 2020-12-02 14:15:55 · 209 阅读 · 0 评论 -
原型模式
php原型模式用于创建对象成本过高时1.原型模式与工厂模式作用类似,都是用来创建对象2.与工厂模式的实现不同,原型模式是先创建好一个原型对象,然后通过clone原型对象来创建新的对象,这样就免去了类创建时重复的初始化操作3.原型模式适用于大对象的创建,创建一个大对象需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可<?phpnamespace prototype;/** * 原型实体 */class Prototype extends PrototypeA原创 2020-12-02 11:56:52 · 191 阅读 · 0 评论 -
抽象工厂模式
php抽象工厂模式说说我理解的工厂模式和抽象工厂模式的区别:工厂就是一个独立公司,负责生产对象;抽象工厂就是集团,负责生产子公司(工厂);<?phpnamespace factoryAbstract;interface Factory { public function createFarm(); public function createZoo();}<?phpnamespace factoryAbstract;class AnimalFac原创 2020-12-02 11:25:27 · 265 阅读 · 0 评论 -
工厂模式
创建型模式工厂方法模式和抽象工厂模式的核心区别工厂方法模式利用继承,抽象工厂模式利用组合工厂方法模式产生一个对象,抽象工厂模式产生一族对象工厂方法模式利用子类创造对象,抽象工厂模式利用接口的实现创造对象工厂方法模式可以退化为简单工厂模式(非23中GOF)<?phpnamespace factory;/** * 动物接口 */interface AnimalInterface{ }<?phpnamespace factory;/** * 实体鸡原创 2020-12-02 10:50:47 · 125 阅读 · 0 评论 -
单例模式
<?phpnamespace singleton;/** * 单例 */class Singleton{ /** * 自身实例 * * @var object */ private static $_instance; /** * 构造函数 * * @return void */ private function __construct() { } /** * 魔法方法 * 禁止c.原创 2020-11-24 10:50:44 · 134 阅读 · 0 评论