<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [![](http://cdn5.raywenderlich.com/wp-content/uploads/2013/07/mvcking.png)](http://cdn5.raywenderlich.com/wp-content/uploads/2013/07/mvcking.png) `Model-View-Controller`?(縮寫 MVC ) 是 Cocoa 框架的一部分,并且毋庸置疑是最常用的設計模式之一。它可以幫你把對象根據職責進行劃分和歸類。 作為劃分依據的三個基本職責是: * 模型層 (Model) :存儲數據并且定義如何操作這些數據。在我們的例子中,就是?`Album`?類。 * 視圖層 (View) :負責模型層的可視化展示,并且負責用戶的交互,一般來說都是繼承自`UIView`?這個基類。在我們的項目中就是?`AlbumView`?這個類。 * 控制器 (Controller) :控制器是整個系統的掌控者,它連接了模型層和數據層,并且把數據在視圖層展示出來,監聽各種事件,負責數據的各種操作。不妨猜猜在我們的項目中哪個是控制器?啊哈猜對了:`ViewController`?這個類就是。 如果你的項目遵循 MVC 的設計模式,那么各種對象要不是 Model ,要不是 View ,要不就是 Controller。當然在實際的開發中也可以靈活變化,比如結合具體業務使用 MVVM 結構給`ViewController`?瘦瘦身,也是可以的。 三者之間的關系如下: [![](http://cdn2.raywenderlich.com/wp-content/uploads/2013/07/mvc0.png)](http://cdn2.raywenderlich.com/wp-content/uploads/2013/07/mvc0.png) 模型層通知控制器層任何數據的變化,然后控制器層會刷新視圖層中的數據。視圖層可以通知控制器層用戶的交互事件,然后控制器會處理各種事件以及刷新數據。 你可能會感覺奇怪:為什么要把這三個東西分開來,而不能揉在一個類里呢?那樣似乎更簡單一點嘛。 Naive. 之所以這樣做,是為了將代碼更好的分離和重用。理想狀態下,視圖層應當和模型層完全分離。如果視圖層不依賴任何模型層的具體實現,那么就可以很容易的被其他模型復用,用來展示不同的數據。 舉個例子,比如在未來我們需要添加電影或者什么書籍,我們依舊可以使用?`AlbumView`?這個類作為展示。更久遠點來說,在以后如果你創建了一個新的項目并且需要用到和專輯相關的內容,你可以直接復用?`Album`?類因為它并不依賴于任何視圖模塊。這就是 MVC 的強大之處,三大元素,各司其職,減少依賴。 ### 如何使用 MVC 模式 首先,你需要確定你的項目中的每個類都是三大基本類型中的一種:控制器、模型、視圖。不要在一個類里糅合多個角色。目前我們創建了?`Album`?類和?`AlbumView`?類是符合要求的,做得很好。 然后,為了確保你遵循這種模式,你最好創建三個項目分組來存放代碼,分別是 Model、View、Controller,保持每個類型的文件分別獨立。 接下來把?`Album.swift`?拖到?`Model`?分組,把?`AlbumView.swift`?拖到?`View`?分組,然后把`ViewController.swift`?拖到?`Controller`?分組中。 現在你的項目應該是這個樣子: [![](http://cdn4.raywenderlich.com/wp-content/uploads/2014/11/swiftDesignPattern2-259x320.png)](http://cdn4.raywenderlich.com/wp-content/uploads/2014/11/swiftDesignPattern2-259x320.png) 現在你的項目已經有點樣子了,不再是各個文件顛沛流離居無定所了。顯然你還會有其他分組和類,但是應用的核心就在這三個類里。 現在你的內容已經組織好了,接下來要做的就是獲取專輯的數據。你將會創建一個 API 類來管理數據 - 這里我們會用到下一個設計模式:單例模式。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看