php 工厂静态类,PHP工厂模式之静态工厂模式

模式定义

与简单工厂类似,该模式用于创建一组相关或依赖的对象,不同之处在于静态工厂模式使用一个静态方法来创建所有类型的对象,该静态方法通常是 factory 或 build。

代码示例

创建静态工厂,以后调用都用到这个静态工厂

class StaticFactory

{

public static function factory($type)

{

//通过传过来的类名,实现实例化

$className = __NAMESPACE__ . '\\' . ucfirst($type);

if (!class_exists($className)) {

throw new \InvalidArgumentException('Missing format class.');

}

return new $className();

}

}

创建格式化接口,所有产品都根据这里规则来实例

/**生产猫的接口

* Interface FormatCatInterface

* @package app\lib\StaticFactory

*/

interface FormatCatInterface

{

/**生产手

* @return mixed

*/

public static function createHand();

}

具体产品

/**家猫 类

* Class CatDomestic

* @package app\lib\StaticFactory

*/

class CatDomestic implements FormatCatInterface

{

public static function createHand()

{

return '生产家猫的手';

}

}

/**波斯猫 类,可以生产他的手脚毛等...

* Class CatPersian

* @package app\lib\StaticFactory

*/

class CatPersian implements FormatCatInterface

{

public static function createHand()

{

return '生产波斯猫的手';

}

}

控制器调用

//生产家猫的手

echo StaticFactory::factory("CatDomestic")->createHand();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值