首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要理解边界、控制器、逻辑类类型之间的区别。

需要理解边界、控制器、逻辑类类型之间的区别。
EN

Software Engineering用户
提问于 2020-01-05 15:13:53
回答 2查看 1.6K关注 0票数 -1

顾名思义,我试图理解MVC模式中使用的边界、控制器和逻辑类类型之间的区别。

我会用一个例子来做。请考虑下列类图:

我必须添加所需的类型边界和控制器的分析类,以说明两个用例:借阅一本书和保留一本书。以下是我的回答(对我的手写表示歉意):

那么这是一个正确的答案吗?此外,本例中的逻辑类是图书、学生副本(用于业务流程分析的类)?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2020-01-05 17:13:58

您正在尝试使用实体-控制-边界分析来设计MVC架构。

事实上,图中的所有类都属于“逻辑域”,欧洲央行逻辑中的实体以及MVC中的模型也是如此。

边界类将是与用户交互的GUI类。它们确实在原来的图表中缺失了。

但是要小心:欧洲央行的方法与MVC模式有一些相似之处--这是不一样的:控制器有一个非常不同的目的:

  • 在MVC中,控制器对用户输入和用户命令具有独占性,而在欧洲央行,用户输入则进入边界。
  • 在欧洲央行中,控制器也用领域逻辑表示用例,而所有域逻辑都进入MVC模型。

因此,根据您想要使用ECB还是MVC,您的类设计将有所不同:

  • 在欧洲央行体系结构中,边界(在您的例子中是GUI)实际上不应该与实体交互(参见维基百科文章中关于“健壮性”一节)。你的原理图调整会没事的。如果这是一个关于用例驱动方法的练习,那么没关系。
  • 但在欧洲央行,每个用例都应该有一个不同的控制器。这些不见了。您还应该为参与者和用例的每一个组合都有一个单独的边界。除非您对两个用例都具有相同的用户界面,否则可能会缺少这些。
  • 在MVC架构中,模型应该知道要更新它的视图(视图是模型的观察者),在这种情况下,将缺少一个链接。
票数 4
EN

Software Engineering用户

发布于 2020-01-06 08:03:30

你的两节课中有三节没有行为。在面向对象的环境中,这是不可能的。没有行为的对象只是数据记录,在OO中是不受欢迎的。

关于边界,那些是外部系统(大部分),通常没有理由在应用程序中引入它们。也就是说,如果您想在ui上显示您的对象,那么让对象能够显示自己。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/403359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档