User interface 在小部件混合在一起的现代GUI系统中,如何实现MVC风格的程序设计?
我想知道这件事。我现在已经有一段时间感兴趣和玩弄了——尽管我承认我也有点沮丧,因为这里一些看起来最有知识的帖子很难理解,因为它们涉及很多我当时不熟悉的额外术语,即: 在描述它时,虽然这可能更多地是由于我的编码背景,因为我更多的是在桌面和移动领域,而不是在互联网/网络领域(但如果有一篇类似的信息性文章“翻译”,那就更好了)在这种情况下,甚至更好的是,在解释“域对象”等所有概念时,这只是更具概念性和更详细的内容。因为MVC是一种非常广泛适用的模式)“模型-视图-控制器”或MVC,是一种软件布局模式,我现在以以下方式理解:User interface 在小部件混合在一起的现代GUI系统中,如何实现MVC风格的程序设计?,user-interface,model-view-controller,mobile,desktop-application,software-design,User Interface,Model View Controller,Mobile,Desktop Application,Software Design,我想知道这件事。我现在已经有一段时间感兴趣和玩弄了——尽管我承认我也有点沮丧,因为这里一些看起来最有知识的帖子很难理解,因为它们涉及很多我当时不熟悉的额外术语,即: 在描述它时,虽然这可能更多地是由于我的编码背景,因为我更多的是在桌面和移动领域,而不是在互联网/网络领域(但如果有一篇类似的信息性文章“翻译”,那就更好了)在这种情况下,甚至更好的是,在解释“域对象”等所有概念时,这只是更具概念性和更详细的内容。因为MVC是一种非常广泛适用的模式)“模型-视图-控制器”或MVC,是一种软件布局模式
- 该软件由三个“层”组成。最高级别的层是模型层或“业务逻辑”层。这就是制作程序应该制作的东西的所有“螺母和齿轮”发生的地方(例如,就像在电脑游戏中,这是所有游戏逻辑发生的地方)。另外两层是数据层和UI层;实际上,它们负责将模型层转换为系统输出,分别转换为永久存储器和计算机的用户界面外围设备(如屏幕、键盘/鼠标/触摸板等)
- 模型层分为四层:域对象,其中包含实际的业务逻辑;数据映射器,抽象对持久性存储的访问(可以是数据库,如Android的Room持久性库[SQL wrapper],或者,比如桌面/服务器空间中的文件系统),存储库包含数据映射器,并提供类似“库”的界面,您可以在其中通过键(例如“findSomething()”方法)查找和获取域对象,而服务是模型层与UI和数据层之间的接口
- UI层分为视图和控制器组件,其中视图组件负责向用户呈现模型层数据,控制器组件负责模型层数据;也就是说,它们向模型层中具有副作用的服务发送命令。正是由于这个原因,以及模型层的存在,才产生了整个模式的名称
(我还要补充一点,如果有的话,它似乎更容易适应相关的MVVM模式[模型视图模型]对于现代GUI系统来说,因为它们不会将访问/变异分离;但组织模式的选择似乎也不应该取决于您打算针对的特定UI框架,因为这样做有违目的。事实上,Android似乎非常暗示,它“想要”一个MVVM模式,因为它在中提供了一种称为ViewModel的东西除了它的片段和活动(MVVM的视图)之外,MVVM的视图不受加入元素和变异元素相同分离的约束。然而,对我来说,访问/变异分离似乎是合乎逻辑的,我想问的是如何在这些系统中实现它。)在模型视图控制器中我认为(MVC)模式,控制器是关于处理事件(如用户输入或网络)以及(如有必要)更改模型的,如以下架构模式图所示: 以下是关于Android中MVC模式的原始文章,也是基于观点的:
在我看来,在模型-视图-控制器(MVC)模式中,C