【辫儿哥大白话】到底什么是PHP设计模式?[基础篇] —— 工厂模式

本文适合对PHP语言有基本基础的童鞋食用,配合框架研究,基础实践效果更佳~
个人整理,心得体会,欢迎讨论指导.

这学PHP语言学到已经程度,是不是已经受够了基础的原生开发瞎乱写,模块随意乱丢的情况啊?有些有强迫症的童鞋肯定忍不住!那有没有一套规则来使这些杂乱无章的调用变得井井有条呢?来来来,一起研究一下奥。
在这里插入图片描述

工厂模式使用环境

咱们在日常进行调用一系列方便快捷的 Model类 的时候,是不是每次调用都需要去 New 这个新的类,然后再使用其中的方法进行操作。咱们今儿个就拿 数据库Database 类进行举例子,假设现在有这样一个数据库操作类,我要进行操作的时候是不是需要先:

$db = new Database();

像这样去创建这个类的实例。然后进行巴拉巴拉巴拉一系列的操作。假设现在这个实例已经使用了一段时间,现在有一个智*的项目经理跟你说,我现在看这个Database不顺眼,你要把这个类的名字还有参数都给我改变,你不变我就一哭二闹三上吊!这个时候你是不是就蒙了,因为这个实例已经在代码中 调用了太多次 了,要改名字和参数肯定要一个一个去改,而且还要全文搜索一处一处去改。
但是这个时候如果在前期使用了 工厂模式 去实现调用,就可以完美的规避掉这个 由脑残项目经理提出的 问题。

工厂模式的实现、

工厂模式需要有一个公共的 “工厂类”,我们来创建它,假设它的名字为 Factory.php
在这里插入图片描述
如上图代码显示,在这个工厂类中的定义一个 createDatabase() 方法,并在其中调用所需要的Model类,相当于给调用方式穿上了一身衣服,相对应的在使用时调用改为:

$db = Factory::createDatabase();

如此一来,若要对其中的 Database 类进行修改名称或参数时,并不会影响任何一个调用端,只需要修改其中工厂类中 createDatabase 方法即可!完美解决的应用场景的问题。

总结

其实 “工厂模式” 就是使用一个 工厂类 去实现对Model类的实例操作,从而替换掉 New 实例的操作。其核心作用是解决:
假如同一个类在多个文件内都用 new 的操作,如果文件名称或其参数发生了变化,那么则需要反复分别修改,而工厂模式只需要在方法中修改即可。
这个时候可能有童鞋就会问了,您这不是脱裤子放屁么 这么写有什么用啊?因为工厂模式也是其他设计模式的 基础模式。想要知道更多的童鞋可以接着向下学习下一个设计模式 【单例模式】。

原创文章 9 获赞 5 访问量 686

猜你喜欢

转载自blog.csdn.net/smilekzero/article/details/104016026