php-工厂模式实现
概述
工厂模式(Factory Pattern):在工厂模式中,可以根据参数的不同返回不同类的实例。工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。
还是拿工厂模式现实中中的例子:
现在有一个摩托车制造厂,它生产踏板摩托和跨骑摩托车,踏板车和跨骑车都是由发动机、车身和轮子组成的。
在工厂模式中,我们把踏板摩托车和跨骑摩托车作为摩托族群中的两个类别,生产引擎、车身和轮子为生产摩托车的固定结构,
模式结构
工厂模式包含如下角色:
- MotorcycleFactory-摩托工厂角色:工厂角色负责实现创建所有实例的内部逻辑
- Motorcycle:抽象摩托角色:摩托角色是所创建的所有对象的父类,负责描述所有实例所共有的公共接口
- MotorcycleScooter-踏板摩托角色:具体实现踏板摩托车的业务逻辑
- MotorcycleStraddle-跨骑摩托角色:具体实现跨骑摩托车的业务逻辑
UML图例
以本文实例代码为参考
代码实例
<?php
/**
* +----------------------------------------------------------------------+
* php23种设计模式实现-工厂模式
* Author:微信公众号:yuantanphp
* 获取更多资源,技术答疑,项目合作请关注微信公众号:yuantanphp
* +----------------------------------------------------------------------+
*/
//定义一个抽象类
abstract class Motorcycle
{
//发动方法
public abstract function engine();
//车身方法
public abstract function body();
//车轮方法
public abstract function whell();
}
/**
* 踏板摩托
*/
class MotorcycleScooter extends Motorcycle
{
public function engine()
{