在理想世界中,不應該依賴單例,視圖內控制器和模型中的模型應該是2個不同的實例。當控制器設置狀態並且視圖呈現取決於該狀態時,問題就出現了。例如:PHP:MVC中的模型應該作爲單例實現嗎?
class MyController extends Controller {
public function __construct(ModelUsers $cModel)
{
$this->model = $cModel;
}
public function action_Search($username) {
$this->model->filterByUsername($username);
}
}
class MyView extends View {
public function __construct(ModelUsers $vModel)
{
$this->model = $vModel;
}
public function users() {
return $this->model->getUsers();
}
}
如何在控制器模型和視圖模型之間共享數據?
爲什麼單身人士會不好? – Virus721
這不是一個「模型」。模型是一個圖層,圖層不能是單身人士。同樣,沒有控制器模型或視圖模型。有關更多詳細信息,請參閱http://stackoverflow.com/questions/3499336/in-mvc-where-do-you-draw-the-line-between-a-controller-and-model/3501048#3501048。 – Gordon
@ Virus721因爲http://stackoverflow.com/questions/4595964/who-needs-singletons/4596323#4596323 – Gordon