[英]How to design Model class in iOS application (following MVC pattern)
[英]MVC design Pattern - Designing a Model
我一直在使用mvc設計模式來開發iOS,我想知道自己是否做對了。 我已經閱讀了很多有關MVC的文章,就我的觀點而言,所有將要顯示或將改變視圖特征的信息都將存儲在模型中(因為這是我vc的“知識”)。 因此,以我設計MVC的方式,我通常為用戶交互的每個視圖創建一個mvc,並且我擁有管理整個App中所有“共享”信息的模型對象,以及一個用於持久存儲某些數據的“ UserSession”類。 例如:
在我的HomeViewController中,根據對象的狀態,我有不同的子視圖,因此在此MVC(主頁)中,我有一個“演示者”作為控制我的homeSubview類型及其數據的模型。 當我需要從另一個模型對象(例如用戶或任何對象)中檢索信息時,我的“演示者模型”將發揮作用(在這種情況下),並且在項目內的另一個mvc中也會發生同樣的情況。 我的方式是這樣的:
控制器[詢問]模型(如果需要,可以與其他模型通信),然后[“響應”]控制器,然后[更新]視圖
因此,這對我來說看起來不錯,但是我跌倒了,因為我沒有正確使用mvc模式。 有人可以發表意見嗎?
提前:對英語感到抱歉。 非常感謝您的任何建議/幫助,謝謝!
盡管您的建議聽起來更像是MVVM(C)模式而不是MVC,但我的建議沒有什么錯。
因此,在iOS中,我們幾乎被迫使用視圖控制器,因此這里需要額外的(C),但本質上是:
class Model { var firstName: String var lastName: String .... }
class View: UIView { let fullNameLabel = UILabel() }
class ViewModel { let model: Model func fullName() -> String { return "(model.firstName) (model.lastName)" } }
顯然,我們還有一個控制器可以協調整個過程:)
在我看來,這就是您正在做的事情,您的presenter
是視圖模型。
這有助於封裝實際上不屬於您的視圖或模型的功能。 從技術上講,全名不是數據模型的一部分,也不是呈現/表示形式的名稱,因此我們將其移至適配器/表示者/視圖模型(無論您要使用什么名稱)。
也許這對您有幫助? 如果您需要更多反饋或有任何其他問題,請隨時為其他信息提供代碼示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.