從開始寫程式以來,雖然會自己把 Activity, Database 之類的用不同的資料夾來區分,也沒在管什麼MVC, MVP更不用講今天要提到的MVVM。但隨著Android Jetpack的推出,提供一些好用的方法來實現MVVM架構,這邊就來釐清一下到底什麼是MVC, MVP, MVVM。 設計架構MVC (Model / View / Controller)MVC架構中,把程式分成了三個層級: M:Model - 負責處理與資料相關的事情,包括取得資料、儲存資料等等。V:View - 如字面上所示,就是與介面相關的東西。C:Controller - 介於View及Model之間的橋樑,接收來自View的事件,去操控Model的資料。Android 中的 MVC在Android的世界中可以將Layout的XML視為View,data class視為Model,而Activity或Fragment則是Controller。 這樣的架構看似很完美,但其實執行起來有他的困難點,首先View上元件的操控通常會寫在Activity或Fragment當中,導致Activity或Fragment需同時負責View及Controller的事情,當介面越複雜、要處理的邏輯越多時,Activity或Fragment的程式碼就會變得又臭又長。 MVP (Model / View / Presenter)