gpt4 book ai didi

cocoa MVC : where is application work logic intended to be placed?

转载 作者:行者123 更新时间:2023-12-03 17:05:58 25 4
gpt4 key购买 nike

我在苹果开发网站上看到的所有 Cocoa MVC 文档都对“数据”等实体进行操作:模型保存“数据”, Controller 显示“数据”, View 确保数据来回传输。但只有当您创建像“日历”或“联系人”这样的数据库访问应用程序时,这种方法才有效:(。

但是其他应用程序类型在哪里?例如,我们采用一个 GUI“ping”应用程序,它创建一个单独的线程、对远程计算机执行 ping 操作并绘制一个漂亮的 ping 响应时间图表。 Cocoa MVC 中实际的 ping 代码在哪里?是在模型、 Controller 内部还是在 MVC 外部?

下一个示例是“锁定屏幕”实用程序,它显示 GUI 以配置将锁定 OSX 屏幕的快捷方式并处理该快捷方式。实际的应用程序逻辑是快捷方式句柄代码和检查快捷方式是否尚未使用的代码。是在模型中、在 Controller 中还是在 MVC 外部?

应用程序的某些部分,例如“启动时检查新版本” - 是在模型、 Controller 内部还是在 MVC 外部?

我很好奇,Apple 是否有任何官方信息/指南强调了上述问题?或者对于苹果来说,所有应用程序都是数据库前端? :(

最佳答案

MVC 架构适用于各种应用程序类型,而不仅仅是以数据为中心的应用程序。例如:

  • GUI ping 应用程序应该有一个模型来跟踪主机列表、它们的当前状态以及它们的响应时间。 “ping”行为本身通常被称为 Controller 功能。我可能会创建一个集中此的 PingManager 对象。或者,您可以拥有单独的 HostController 对象来管理 ping 服务器并更新 Host 模型对象。这不应该与 HostViewController 混淆。 Controller 可以协调模型对象而不需要 View 对象。

  • 处理程序和快捷方式系统之间的交互将是一个 Controller 功能。

  • 版本启动检查通常是应用程序 Controller 函数,但也可以是其自己的 Controller 对象(例如 UpdateManager)。

一般来说,您最常所说的“应用程序逻辑”位于 Controller 中。

关于 cocoa MVC : where is application work logic intended to be placed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8386614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com