序言:

工厂模式是php设计模式中最常见的一种设计模式,工厂模式可以分为大略工厂模式,工厂方法模式和抽象工厂模式,限于篇幅,我们将工厂模式分成四个小节谈论,本节我们总体互换一下工厂模式的问题,后面分三个部分谈论大略工厂、工厂方法和抽象工厂模式。

内容概要:

工厂方法模式phpphp设计模式2工场模式概述 GraphQL

1、什么是工厂模式

2、为什么利用工厂模式

3、什么情形下利用工厂模式

4、工厂模式的分类

一、什么是工厂模式

工厂模式是属于创建型模式,他是一种创建工具的最佳办法。
在工厂模式中,我们在创建工具的时候,不会对调用者显示创建的内部逻辑细节,仅供应一个共同的接口来指向新创建的工具。

说的大略点,便是我们供应一种创建工具的接口,让调用工具的人方便利用,在php中便是,创建工具不该用 new class()这种方法创建工具,而是利用某个封装起来的接口或者方法创建工具。

冰激凌工厂做例子

举个例子,假设有一个生产冰激凌的工厂,工厂目前暂时生产两种类型的冰激凌:苹果味和牛奶味的。
假设我们去工厂买冰激凌,并且一次买一个(有点过分,假设哈)。

如果没有工厂模式的情形下,是这样买到牛奶冰激凌的:我们直接走莅临盆牛奶冰激凌的车间,自己亲手配料制作(自己new冰激凌工具),制作完毕后,到工厂外贪婪的吃了起来……

假设有工厂模式的情形下,你只须要走到工厂门口,见告门卫:我要牛奶味的冰激凌,门卫打电话给牛奶车间,生产一个牛奶味的冰激凌送过来,你收到门卫递过来的冰激凌,贪婪的吃了起来……

例子有些扯,估计大家也能明白个中的意思。
便是调用者不用理解和参与创建工具的事情,直接由门卫(代表工厂)来帮你完成创建事情。

二、为什么利用工厂模式

每个工具统一由工厂来创建,便于管理和拓展,而且也减少了代码的复制粘贴,使得各模块耦合关系弱。
同时,调用者不用关心工厂的生产细节,便于团队分工协作。

总结一下为什么利用工厂模式:便是易掩护、可扩展、能复用,也便是灵巧性好。

扯到冰激凌上,你只管说想吃啥味的冰激凌,拿走吃便是,其他生产过程,卫生容许,配料比例你就别问了,是不是很方便。

三、什么情形下利用工厂模式

工厂模式紧张针对工具的多态。
上面例子中说了,工厂现在有牛奶和苹果味的冰激凌,但是,不知道哪天增加个葡萄味的,过几天增加个榴莲味的,或者是增加一种卤煮味的(增加影象用,非本人口味重)。
对应工厂来说,只须要创建相应的车间就行了。
对调用者来说,调用办法没有变,这便是上风了。

常见的有数据库,注册用户,运行日志等包含多种类型的业务都可以利用工厂模式。

四、工厂模式的分类

按照创建工具的办法不同可以分为:大略工厂模式、工厂方法模式和抽象工厂模式。
在一些PHP框架中,利用工厂方法模式比较多。

好了,本节就聊这些吧,下一节聊每一种工厂模式的详细实现方法。

欢迎关注【php在路上】每天进步一点。

码字不随意马虎,尊重版权,头条首发,转载请注明出处:头条号|PHP在路上