什么时候使用单身人士?

0 php model-view-controller singleton controller

我有这个代码:

class MyController {
public function newUserAction()
{
    $view = new View('myfrontend');
    if($this->request->isPost())
    {
        $form = new MyForm;
        $posts = $this->request->getPosts();
        if($form->isValid($posts))
        {
            //...
        }
    }
    $view->display();
}
Run Code Online (Sandbox Code Playgroud)

}

因此,每次表单未正确填写时,流程将再次启动,因此每次都有"新视图('myfrontend')"等.但这是件好事吗?一次又一次地拥有一个新的视图对象.

在这里与单身人士合作不是更好吗?

Gor*_*don 11

永远不能.就那么简单.

再次显示无效表单时,无论如何都必须重新提交.这将是一个全新的请求.该应用程序将通过完整的引导程序和调度.单身人士在这里没有帮助,因为PHP中的单身人士也只会为请求生活.

此外,单身人士更难以测试.我还没有遇到过使用依赖注入时无法避免使用Singleton的UseCase .即便是单身人士模式的发明者之一埃里希·伽玛(Erich Gamma),现在对这种模式表示怀疑:

"我赞成放弃Singleton.它的使用几乎总是一种设计气味"

你最好避开单身人士.