什么是工厂模式
定义:工厂模式是指根据不同的参数生成不同的类实例。一个类通过本身的静态方法来实例化一个类并返回一个实例对象。
工厂模式的特点
类命名特点:nameFactory eg: class MysqlFactory {} 【这是为了规范,当然也可以起其他任意名字】
静态方法名称: static public function factory($classname){} 【静态方法是类与外界的接口,返回的是一个对象】
为什么要使用工厂模式
减少代码进行复制粘贴,强耦合关系,牵一发动其他代码,比如在项目中很多地方实例化某个类,现在突然发现类名不适合或者类中需要添加构造函数参数,难不成需要一个一个改?
优点
如果已经使用的类内部发生改变,那不需要在所有的地方都改变,只需要在类工厂类里做改变即可,比如连接数据库,可以使用MySQL、mysqli、PDO;根据不同参数配置使用不同的数据库操作类
应用场景
(1).做支付接口的时候,未来可能应对不同的支付网关:支付宝、财付通、网银在线等。以后加一个支付方式,要使用哪一种支付方式,改一下参数即可。
(2).做成接口形式,让所有子类都要实现它的接口
(3).系统对接多个不同的数据库,MySQL、Oracle、SQLServer
工厂模式解决的问题
工厂模式更多考虑的是拓展维护的问题,如何不通过 new 建立实例对象的方法,单例模式和工厂模式可以产生更加合理的对象。
代码实例
1 |
|