打赏

简单工厂模式

简单工厂模式

复制代码
<?php
//简单工厂模式

//mysql报错日志
class MysqlLog
{
}
//Redis报错日志
class RedisLog
{
}
//用户操作错误日志
class UserLog
{
}
//代码错诶日志
class ErrorLog
{
}

class Product
{
    protected $log;

    public function __construct(array $module)
    {
        $factory = new LogFactory();

        foreach ($module as $item) {
            $this->log[$item] = $factory->make($item);
        }
    }

    public function getLog()
    {
        return $this->log;
    }
}

class LogFactory
{
    public function make($abstract)
    {
        switch ($abstract) {
            case 'mysql':
                return new MysqlLog();
            case 'redis':
                return new RedisLog();
            case 'user':
                return new UserLog();
            case 'error':
                return new ErrorLog();
        }
    }
}

$pra = new Product(array(
    'mysql',
    'redis',
    'user',
    'error'
));
var_dump($pra->getLog());
复制代码

 

 

posted on   头大的冯冯  阅读(13)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示