Keyword: 單一職責 最小知道
在MVVM中,單一職責與最小知道原則是非常重要的.可以說是MVVM的核心概念也不為過.
當某個組件需要對很多層級負責時,就很容易膨脹的非常快,成為所謂的God Object,最後甚至變成沒有人可以理解他在做什麼用就對了的黑盒子狀態.在MVC中就很常發生這個問題.
如果這個God Object只有Android或iOS自己使用的話倒還好
但是當今天要跨平台的時候,God Object無法照著預想中的去掌控全局,各平台也有獨立的特性,而這些特性可能不能共通.神在這裡也不是無所不能的.
在開始寫code之前,先問問自己,這行code是要做什麼的,它放在這邊對嘛?
當某個組件知道了太多他在使用上不需要知道的東西,就很容易產生side effect . 明明我這次沒有修改到的東西,但是因為其他地方有引用.結果就壞掉了.
另外就是由於MVVM的設計,不會知道外面是怎麼使用自己,所以如果超出職責的資料,就容易被誤用.因此,下層的組件應該只提供最少的可行的資訊量給上層.
在開始寫code之前,先問問自己,我有必要要知道這個嘛?不知道這個我可以正常使用嘛?
把握住這些原則,在寫KMM的時候就更容易寫出一個優雅且解耦的專案
明天我們將會正式開始KMM的專案.