因此,我是MVC的新手,在So和一些博客上读过几十个类似的问题。我无法理解如何构造我的应用程序。要么是我不明白,要么是人们对如何做这件事有不同的看法。下面是我的具体简单示例:登录屏幕和帐户创建屏幕。
根据我的理解,我应该有以下几点:
视图简单在本例中为两个视图
模型两个视图模型。登录有用户名和密码。注册有用户名,密码,电子邮件等。只有属性没有方法。
控制器通过调用服务层(如CreateUser() )来构建视图模型
business/service单独的项目。具有与数据库交互和应用业务逻辑的方法。由控制器调用,将输出转换为视图模型格式。该项目有自己的模型/类,不与特定视图相关联。该层中的CreateUser()将调用db上的存储过程
这是正确的流程吗?而且,当从业务层返回数据时,我不应该使用视图模型。那么,我是否在业务端创建另一组类似于数据库中逻辑实体的模型?
发布于 2014-10-09 18:59:09
这听起来很合理。关于单独的模型和视图模型的要点是一个一般性的建议,以避免服务层和UI之间的紧密耦合。这意味着多个应用程序可以使用这些服务,即使它们的UI屏幕不同。不过,我确实认为,在某些情况下,如果视图模型成为模型的镜像,跳过视图模型是有意义的。只有当视图模型在为视图准备数据(格式化等)时添加某种价值时,我才会创建视图模型。
然而,有些人可能会声称,您应该始终创建视图模型--即使是那些反映模型的模型。我也能理解这个论点,因为它与避免UI和服务之间的耦合有关,这使得您能够在不改变到UI链的情况下发展服务。你必须做出判断,这对你来说有多重要,因为这是以一个在相同物体之间“轮渡”值的层为代价的。
https://stackoverflow.com/questions/26291237
复制相似问题