MVC, use cases



我已经了解到,您应该在MVC-OOD中设置控制器类作为用例,仅在一种运行MVC类的方法中从上到下设置。<<<<<<<<<<<<<<

可以在一个控制器中使用不同的方法来获得更多的控制和更好的概述?

假设您想运行一个控制器,该控制器将显示登录表单(从视图中获取HTML等)。如果用户未登录,同一控制器还将显示一个注销按钮。这可以用控制器中的一种方法来完成,但是使用两种方法似乎更好。如果您想要登录表单,请致电一种方法,如果要注销按钮,请致电。(只是一个例子)

那么,专业人士怎么说。每个控制器是否应该仅包含一种"用例"方法,还是几个?

tl; dr - 您已经误解了MVC设计模式并做错了。

控制器不负责呈现接口,也不负责演示逻辑。控制器不会显示任何东西。相反,每个控制器的方法涉及不同用户的请求。它从上述请求中提取数据并将其传递给模型层和相关的视图。

在视图的权限中,关于什么以及如何显示的决定。视图包含MVC模式的演示逻辑。在Web应用程序的上下文中,视图创建响应。它们可以从多个模板中构成A或仅发送一个HTTP标头。

控制器可以通过将请求的一些特定值传递给该视图来发出关联的视图,但是视图中的大多数决定都是基于从模型层中不同服务请求的信息。

控制器的方法基于用户可以发送的哪些类型的请求。例如,在身份验证形式中可能是:GET /login和/或POST /login

重要的是要记住MVC的两件事,首先是面向对象的架构,其次,它应用于分开关注点。

关注点的分离与抽象有关,这是为了帮助我们理解手头的代码部分。模型和视图都是相关对象的集合/域。每个对象都完全完整并且与其域相关。

您会在视图内找到具有按钮,图像,文本输入等类型的对象,并且您会在模型中找到与业务相关的对象(用户,帐户,配置文件等)。

模型内部的对象收集不会做太多,它们需要逻辑将对象连接在一起。(或简单地将简单的单个对象请求委派给正确的对象)

控制器将接口提供到您的模型中,并包含与模型相关的业务逻辑以及模型对象之间的交互。您将拥有一个用于模型的单个控制器,并且控制器将具有多种与用例一致的方法。

最新更新