iOS 类似于 Whatsapp 的应用程序中的 MVC 设计

MVC design in iOS application similar to Whatsapp

我一直在开发类似于 Whatsapp 的应用程序(当然具有其特殊功能),现在我认为我应该重构所有现有代码以使其符合 MVC 设计模式(因为胶水代码过多)。

如果我将我的应用程序分解为一些简单的东西,我们将有:

  1. First Message:
    • ID
    • Any Unread Message
    • Source User
    • Target User
  2. Normal Message:
    • ID
    • First Message (weak reference)
    • Received State (Got to server/Got to client/Read by client)
    • Am i owner of message (am I source)
    • Date
  3. User:
    • ID
    • Phone Number
    • Profile Image Link

请注意,如果有任何用户未阅读的消息,"Any Unread Message" 应该打开。只是服务器的优化。

我从来没有真正正确地使用过 MVC 设计模式,所以我想确保我的计划是正确的,或者也许有 additional/other 我应该做的事情。

我在想:

  • Model:
    • Create a Core-Data xcdatamodel file which will hold the above entities
    • Use the library mogenerator to generate entity files from the core-data model
    • Create Data-Models for each operation. for example: Register Data-Model which will handle all the registration api with the server; Message Data-Model which will handle sending a new message and retrieving new messages; etc. All of these will be singleton.
  • View:
    • all the views of whatsapp like outer UITableViewController (to display unique users) and inner UITableViewController (to display messages from a specific user).
  • Controller:
    • uses some of the above data models to fetch new data explicitly

我正在考虑将 API 从模型提供给控制器,它可以显式使用它,但不使用通知或键值观察设计。

我还没有找到任何在线教程或文档来说明更好的做法。

有什么建议吗?

好吧,通过坚持理论——在模型和控制器之间使用通知,在视图和控制器之间使用 KVO,我成功地在我的项目中实现了 MVC 设计模式。

:)