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();
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容