Web services 与Tier 3接口的MVC模型

Web services 与Tier 3接口的MVC模型,web-services,rest,design-patterns,model-view-controller,architecture,Web Services,Rest,Design Patterns,Model View Controller,Architecture,编辑:谢谢你的回答。他们很有帮助。我的最后一个问题是,是否可以通过REST实现这一点? 首先,我意识到这些已经在以下两个链接中得到了一定程度的回答,所以请不要将其作为副本关闭。我有理由感到困惑 据我所知,MVC设计用于3层体系结构中的“表示”层,以允许GUI创建。我明白了。然而,我感到困惑的是GUI中的数据模型应该如何与“Tier 2”应用程序逻辑交互。这就是我的设想: 因此,从我收集的信息来看,每当用户与GUI交互,并且模型更新时,模型是否有责任通过web服务器API与体系结构的其余部分

编辑:谢谢你的回答。他们很有帮助。我的最后一个问题是,是否可以通过REST实现这一点?

首先,我意识到这些已经在以下两个链接中得到了一定程度的回答,所以请不要将其作为副本关闭。我有理由感到困惑

据我所知,MVC设计用于3层体系结构中的“表示”层,以允许GUI创建。我明白了。然而,我感到困惑的是GUI中的数据模型应该如何与“Tier 2”应用程序逻辑交互。这就是我的设想:


因此,从我收集的信息来看,每当用户与GUI交互,并且模型更新时,模型是否有责任通过web服务器API与体系结构的其余部分进行对话?

取决于您希望如何构建项目

例如:有时我们不想公开我们的模型类(实体)。所以,我们创建DTO类来接收来自UI的信息,这些信息将由控制器处理,并将其传递给将其转换为实体的业务逻辑。它在SOA解决方案中被大量使用,我们可以在SOA解决方案中公开我们的服务


示例:UI请求->带有DTO的控制器->BLL(转换为真实模型类)->存储库/DAO->DB。

取决于您想要如何构造项目

例如:有时我们不想公开我们的模型类(实体)。所以,我们创建DTO类来接收来自UI的信息,这些信息将由控制器处理,并将其传递给将其转换为实体的业务逻辑。它在SOA解决方案中被大量使用,我们可以在SOA解决方案中公开我们的服务


示例:UI请求->带有DTO的控制器->BLL(转换为真实模型类)->存储库/DAO->DB。

取决于您想要如何构造项目

例如:有时我们不想公开我们的模型类(实体)。所以,我们创建DTO类来接收来自UI的信息,这些信息将由控制器处理,并将其传递给将其转换为实体的业务逻辑。它在SOA解决方案中被大量使用,我们可以在SOA解决方案中公开我们的服务


示例:UI请求->带有DTO的控制器->BLL(转换为真实模型类)->存储库/DAO->DB。

取决于您想要如何构造项目

例如:有时我们不想公开我们的模型类(实体)。所以,我们创建DTO类来接收来自UI的信息,这些信息将由控制器处理,并将其传递给将其转换为实体的业务逻辑。它在SOA解决方案中被大量使用,我们可以在SOA解决方案中公开我们的服务


示例:UI请求->带DTO的控制器->BLL(转换为实际模型类)->存储库/DAO->DB。

层的讨论实际上与MVC的讨论是正交的

MVC并没有真正讨论模型应该如何与外部服务/数据层通信。关于这个问题有一些很好的讨论。关于数据访问/持久性应该在模型层还是控制器层存在争议。我更喜欢它在我的模型层

我也更喜欢,所以我倾向于将与层的实际对话放在模型的服务部分,而不是域对象中。但是,将其放入模型对象也可以很好地工作,您只需要使用DAO模式将持久性层与业务逻辑层分离

但关键是,两个层都需要自己的模型和DAO层。表示层的DAO层将与业务层对话。业务层的DAO层将与数据库/存储层对话


这将每个层与其他层中的更改隔离开来

层级的讨论实际上与对MVC的讨论是正交的

MVC并没有真正讨论模型应该如何与外部服务/数据层通信。关于这个问题有一些很好的讨论。关于数据访问/持久性应该在模型层还是控制器层存在争议。我更喜欢它在我的模型层

我也更喜欢,所以我倾向于将与层的实际对话放在模型的服务部分,而不是域对象中。但是,将其放入模型对象也可以很好地工作,您只需要使用DAO模式将持久性层与业务逻辑层分离

但关键是,两个层都需要自己的模型和DAO层。表示层的DAO层将与业务层对话。业务层的DAO层将与数据库/存储层对话


这将每个层与其他层中的更改隔离开来

层级的讨论实际上与对MVC的讨论是正交的

MVC并没有真正讨论模型应该如何与外部服务/数据层通信。关于这个问题有一些很好的讨论。关于数据访问/持久性应该在模型层还是控制器层存在争议。我更喜欢它在我的模型层

我也更喜欢,所以我倾向于将与层的实际对话放在模型的服务部分,而不是域对象中。但是,将其放入模型对象也可以很好地工作,您只需要使用DAO模式将持久性层与业务逻辑层分离

但关键是,两个层都需要自己的模型和DAO层。表示层的DAO层将与业务层对话。业务层的DAO层将与数据库/存储层对话


这将每个层与其他层中的更改隔离开来

层级的讨论实际上与对MVC的讨论是正交的

MVC并没有真正讨论模型应该如何与外界对话