工厂设计模式:
概念:
工厂设计模式提供获取某个对象的新实例的一个接口,同时使调用代码避免确定实际实例化基类步骤。 很多高级模式都是依赖于工厂模式。
好处:
(1)PHP中能够创建基于变量内容的类的新实例,减少主代码流中的基于条件复杂性;
(2)如果类发生改变不需要所有的地方进行修改,只需要在工厂中进行修改
应用场景:
(1)假设矩形、圆都有同样的一个方法,那么我们用基类提供的API来创建实例时,通过传参数来自动创建对应的类的实例,他们都有获取周长和面积的功能。
(2) 做支付接口的时候,未来可能对应不同的支付网关:支付宝、财付通、网银在线等。方便未来扩展,设计成工厂模式。定一个专门生产网关接口的工厂,抽象出来, 做成接口形式,让所有的子类都要实现它的接口。 以后加一个支付方式,要使用哪一种支付方式,改变一下参数即可。
(3) 在为用户注册的时候,分为很多种角色的用户。 比如册用户,匿名用户、管理员用户等。完全使用可以使用工厂的思想来实现, 代码也容易维护,为每种角色可以生成操作的类等等。