1

我在使用 MVC 模式时遇到问题;我创建了多个模型,我使用它们中的每一个来处理分组任务(连接、数据库等)。

问题是,在创建基本模型之后,我最终得到了这样的代码(在控制器内)。

class Controller 
{
    function doStuffz() 
    {
        $accounts = new AccountsModel();
        $DB       = new DBModel();
        $HTML     = new HTMLModel();
        //More models...

        $accountData = $accounts->getAccount($id);
        $DB->saveAccount($accountData);
        $HTML->display($accountData);
        //More code...
    }

}

我一直在我的类中的(几乎)所有函数中创建模型实例,即使将它们设为静态似乎绝对没问题。

读了这个关于何时使用静态方法的问题,在应用“经验法则”之后,似乎所有这些模型都应该是静态的,这在 MVC 模式中是一个不好的做法吗?

如果我将这些模型设为静态,我可能会得到这样的结果:

class Controller 
{
    function doStuffz() 
    {

        $accountData = AccountModel::getAccount($id);
        DBModel::saveAccount($accountData);
        HTMLModel::display($accountData);
        //More code...
    }

}

这对我来说实际上更有意义,而且它看起来更干净更短。

4

1 回答 1

0

DBModel、HTMLModel 实际上不是模型,它们是服务。

使用静态方式很方便,但也有缺点:全局作用域、依赖紧密、难以测试。

于 2013-03-25T01:44:55.763 回答