“嗨,阿米戈!”

“嗨,比拉博!”

“你已经是一个扎实的程序员了。所以,今天我们要上一节MVC课。”

“MVC 代表模型视图控制器。它是一种用于大型应用程序的架构设计模式,其中应用程序分为三个部分。”

“第一部分包含应用程序的所有业务逻辑。这部分称为模型它包含执行创建应用程序要执行的所有操作的代码。这部分对其他部分的依赖最少。”

“第二部分包含与向用户显示数据有关的所有内容。这部分称为视图它包含控制显示窗口、页面、消息等的代码。”

“第三部分包含处理用户操作的代码。任何旨在改变模型的用户操作都应该在这里处理。这部分称为控制器  

“这种方法允许您独立创建三样东西: 程序的逻辑(模型)向用户显示程序数据的机制(视图)以及用户输入/操作的处理程序(控制器)。”

“应用程序经常有多个视图。这很正常。您可以在 Excel 中查看与数字和图表完全相同的数据。在游戏中,您可以从第一人称、第三人称或地图视图以及许多其他视图查看事件. 所有这些都是对单个模型的不同视图

“决定响应用户操作在模型中更改什么的所有代码都被收集到控制器中例如,如果用户决定关闭程序,那么您需要将模型的数据保存到磁盘上的文件中。或者,如果用户输入了新数据,则需要将其添加到模型中。然后模型会通知所有视图有关数据更改的信息,因此它们只显示数据的当前状态。”

“再说一次。”

“从 Java 开发人员的角度来看,我们可以说模型、视图和控制器是三组类,其中:”

a) 每个部分都有自己的目的;”

" b) 单个组的类之间的关系非常强;"

" c) 群体之间的关系非常薄弱;"

" d) 各部分相互通信的方式受到严格监管。"

“这是另一种描述方式:

MVC-1

“模型是系统中最独立的部分。它不依赖于视图或控制器。模型不能使用视图或控制器组中的类(!)。”

“视图的主要限制是它不能更改模型。视图类可以访问模型以获取数据或订阅事件,但视图类不能更改模型。”

“控制器的主要限制是它不显示数据。控制器处理用户操作并相应地修改模型。”

“但我为什么需要这个?”

“你现在不使用这个事实,并不意味着你在不久的将来不会使用它。你在这里学习是为了找工作。即使这些知识在一段时间内没有用学习,工作的时候肯定能派上用场。”

“毕竟,真正的项目和面试还在等着你……”

“我们现在在这里聊天,但也许一个月后你就已经开始工作了。”

“你说得很对,比拉博。我会认真听你说的。”

“MVC 模式在应用程序架构中非常常见。你需要了解它,这样你才不会突然开始向模型添加视图类,因为你觉得那样更方便。”

“任何项目中最重要的是它的架构。 你在这个阶段的任务与其说是能够创建一个好的架构,不如说是学会理解别人的架构。你仍然需要成长为一个在你创建自己的之前几年。但你需要了解其他人创造了什么。马上。”

“当应用程序使用标准架构时,一切都变得更加清晰。通过了解架构,您可以知道事物的位置,一切如何交互,程序大致如何工作,在哪里添加需要的类以及在哪里寻找原因一个错误。”

“但是,如果你不熟悉建筑的标准方法,那么即使是最好的建筑也不会告诉你任何事情。你会像中世纪的农民一样看着一辆新车。一辆标准的汽车。”

“我明白了。谢谢你有趣的课,Bilaabo。”

“最后,这是一个你绝对应该查看的好链接:”

链接到其他材料