由Simple MVVM框架延伸對接口編程的理解

接口,這東西就是拿來管理一系列的具有共同點的行爲的。現在說的面向接口編程指的就是這個。

下面說一說使用接口的正確姿勢

先來個場景模擬,以打遊戲的英雄爲例吧!

1剛開始我打遊戲的時候,我有一個英雄類,我只是根據不同的字段確定實際攻擊時使用什麼英雄,此時不同的英雄並沒有太多的具體行爲,暫時對我來說他們是一致的。能滿足需求就OK,不能的話就繼續往下看。

2但是後來我發現不同的英雄好像攻擊力不同,所使用的武器不同,防禦指數也不同,此時我想抽象一個英雄的基類好了,不同的英雄去繼承派生,然後重寫父類的方法。嗯,這樣也很合理。

3再後來,我發現不同的英雄雖然攻擊方式不同,但是仔細想想這都是屬於一個叫”攻擊”的行爲,意思是其實他們呢本質是一樣的。好,這個時候我們考慮要不就用接口來管理吧,一個接口被多個不同的類去實現。用接口去統一規範.

這個時候我們需要理解面向對象思想的順序了,先是封裝,在封裝的基礎上考慮繼承,最後再是多態,意思就是說當一個或者一組相似的行爲出現的時候我們先考慮用繼承來解決問題,當能抽象的更徹底時我們再考慮用接口。

 

寫到這裏問題又來了,我們有時候一組東西他其實並不能構成父子的繼承關係,但是他們又的確有相似的行爲,能用接口嗎?當然能,並且這種也是正確的,用接口管理一組相似的行爲。這個時候根據實際情況判斷它有沒有意義.

 

最後總結一句話:當一組相似行爲出現的時候,能構成繼承關係時先考慮繼承再考慮接口,如果只是一組相似行爲可以考慮直接用接口。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章