C#進階之面向接口編程

在閱讀本文之前,您需要對面向?qū)ο?/a>思想以及接口有一個較為清楚的認識!

Tips:

此篇文章著重講述面向接口編程的代碼搭建方式,至于原理以及一些基礎(chǔ)知識可以參照這篇文章:面向接口編程思想基礎(chǔ)

那么,讓我們開始吧~

假設(shè)您準備研發(fā)一個moba類游戲(類似英雄聯(lián)盟或者王者榮耀)。每個人物都必須包含兩個字段:名字和人物類型,兩個方法:介紹自己的性格和釋放技能。

為了體現(xiàn)面向?qū)ο笏枷?,我們需要做的第一步?yīng)該是為每個人物都設(shè)計一個獨立的類,代碼如下:

游戲人物之錘石


游戲人物之德萊文

有了這兩個類我們就可以叫人物模擬一些場景啦,比如叫他們自我介紹.

于是你可能會寫出以下代碼和運行結(jié)果:


嗯。。。看起來似乎沒什么問題。


但如果我先有了第三個人物,那該怎么辦呢?

除了重新寫個人物類以外,還得在main方法里面重新實例化以及調(diào)用一次。

但是LOL可以是一百多個英雄!如果全部都要做自我介紹的話豈不是得在main方法里面實例化以及調(diào)用一百次?


于是我們可以開始考慮使用接口了。

至于好處我先不說,先看代碼。

因為每個英雄都包含了固有的兩個字段和兩個方法,所以我們可以寫個接口來限定它。



然后我們的每個英雄類都去繼承這個接口



核心代碼警告

再來個自我介紹的方法:


于是乎,我們的main方法就被簡化成了這樣:



兩種方式的差異就顯而易見了吧。

在使用了面向接口的編程方式后,我們?nèi)绻略鲆粋€任務(wù),就只需要寫個人物的類來繼承我們的IHeros接口,然后在Main里面調(diào)用一下。不管以后需要新增多少個人物,都是一樣的簡單。

但是使用第一種方式的話,我們就需要在Main寫非常多的冗余代碼。

而且萬一以后我們需要給英雄們新增加一個方法(比如跳一段舞)的話,我們就需要手動去修改所有的英雄類,英雄類多了之后難免會漏掉那么百分之一二,更恐怖的是我們需要挨個修改main方法里面的邏輯。

而面向接口的編程方式很好地解決了這個問題。

如果我們現(xiàn)在又一百個英雄都需要新增跳舞的方法。我只需要在IHeros接口里新增一個跳舞的方法:


然后我所有的英雄類都會報這個錯誤:


這樣可以完美地防止在修改英雄類的時候會漏掉。


而且我只需要修改一下ShowMyself里面的ShowHero()方法就完事兒。甚至都不需要修改Main方法!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容