iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 10
0

昨天大概講解 MVP 的架構模式,但還不完整

View 和 Presenter 的溝通方式,我們必須改為利用 interface (介面)

第一步先創一個 名為 Contract 的 interface

在 interface Contract 再寫兩個 interface

interface Contract {

    interface View {

    }

    interface Presenter {
        
    }
    
}

接下來要改兩個地方

  • View 和 Presenter 實作他
  • 丟給 Presenter 的 View 要改為該實作介面
class MainActivity : AppCompatActivity(), Contract.View { // 實作該介面 
    .
    .
    .
    .
}
// 實作該介面,並將丟入的型態改變
class Presenter(val view: Contract.View) :Contract.Presenter{ 

接著在介面寫幾個 funtion

interface Contract {

    interface View {
        fun showSuccess()
        fun showFailure()
    }

    interface Presenter {
        fun compare(account: String, password: String)
    }

}

其實我們只是把之前用的每個 funtion,改寫到 interface 裡面。

之後 View 需要做新的畫面處理,或是 Presenter 有新的事情要做,都到 interface 裡面加入 function 再實作就可以了!

Model 的部分,我們後面再補充


上一篇
Day9 - Android APP 的 MVP 架構 (1/2)
下一篇
Day11 - 跳轉畫面 & ViewPager 元件
系列文
菜雞 Android APP 從安裝 Android Studio 到上架 Google Play30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言