我在使用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...
}
}
我一直在(几乎)我的类中的所有函数中创建模型实例,尽管使它们静态似乎绝对正常。
I read this questions about when to use static methods,在应用“经验法则”后,似乎所有这些模型都应该是静态的,这是MVC模式中的一个不好的做法吗?
如果我将这些模型设为静态,我可能会得到类似的结果:
class Controller
{
function doStuffz()
{
$accountData = AccountModel::getAccount($id);
DBModel::saveAccount($accountData);
HTMLModel::display($accountData);
//More code...
}
}
这实际上对我来说更有意义,它看起来更清洁,更短。
答案 0 :(得分:0)
DBModel,HTMLModel实际上不是模型,它们是服务。
使用静态方式很方便,但它有缺点:全局范围,严格依赖,难以测试。