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

本文介绍了静态工厂模式的概念,它与简单工厂模式相似,但通过静态方法创建相关对象。示例展示了如何创建一个静态工厂,实现不同类型的猫(如家猫和波斯猫)的实例化,并在控制器中调用这些静态方法来创建对象。静态工厂模式简化了对象的创建过程,提高了代码的可读性和复用性。
摘要由CSDN通过智能技术生成

模式定义

与简单工厂类似,该模式用于创建一组相关或依赖的对象,不同之处在于静态工厂模式使用一个静态方法来创建所有类型的对象,该静态方法通常是 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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值