c# - 跨平台最佳 MVC 模型到 Controller 的消息传递方法(C#、Objective-C++)

标签 c# c++ model-view-controller c++11 objective-c++

计划重写一个复杂的、大量使用 UI 的应用程序,以使其模型尽可能合理地跨平台。我所做的研究/阅读在概念上是有意义的,但就以某种跨平台方法向 Controller 发送消息的模型而言,我没有看到最佳实践方法需要什么。

例如,通过 Controller 调用模型的 API 来更改模型。但是 Model 然后负责通知客户端其数据发生了变化,因此它需要将其广播回 Controller —— Controller 需要通知 View。

但是对于用 C# 或 Objective-C++ 编写的 Controller ,消息传递方法会有所不同,对吗?是否会使用信号连接到 Controller,后者将使用特定于平台的消息与 View 通信?

是否有一个标准的、轻量级的模板来为独立于平台的模型操作设置这些最佳实践?

最佳答案

我正试图开始一个做同样事情的项目。我正计划使用 boost::signals2 作为回调机制。它使用标准 C 函数进行回调,因此它应该适用于几乎任何语言。您可以用 C++ 编写所有模型,并通过 signals2 回调将更改通知 Controller 。

当然,这会将您限制为与您的模型之间的 C 风格接口(interface),但据我所知,如果您希望它跨平台工作,这是唯一的方法。

祝你好运!

关于c# - 跨平台最佳 MVC 模型到 Controller 的消息传递方法(C#、Objective-C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11317405/

相关文章:

c# - unity3d - 加速度计灵敏度

c# - 7zip 中的 7z.sfx 和 7zsd.sfx 模块有什么区别?

c++ - 如何在 C++11 的模板中只接受数字和字符串?

c++ - 链表入队和出队

ruby-on-rails - Rails - 如何避免必须从另一个 Controller 中的创建操作触发一个 Controller 中的创建操作

c# - 为什么 C# 使用 [System.Serializable] 来保存实例? (Unity3D)

c# - Process.Start() 无法正常工作

C++ 入门第 5 版。 union 和类类型的成员

model-view-controller - Javascript MVC 框架的目的

java - spring MVC Web 应用程序尝试连接到 Oracle 时出错 : Type mismatch: cannot convert from DriverManagerDataSource to DataSource