首先你要理解OOP的思想,是
面向接口編程.
什么叫
面向接口編程呢?
假如你買了一個(gè)
多媒體設(shè)備,它給了你一個(gè)遙控,你想要知道的只是按什么按鈕,它會(huì)播放什么
而遙控里面是怎樣運(yùn)行,還有屏幕里面怎么工作,你想知道嗎?
你完全不會(huì)去想了解.
那如果
多媒體設(shè)備需要更新,比如優(yōu)化內(nèi)部運(yùn)行效率,
但是優(yōu)化完了,遙控的按鈕不變,設(shè)備的所有操作方式都不變,按這個(gè)按鈕還是顯示相同的東西
那內(nèi)部怎么變化你完全不需要在意.
這就是
面向接口編程.
無論類的內(nèi)部怎么實(shí)現(xiàn),它對(duì)外的接口不變,那它的使用方式就不會(huì)變
假設(shè)Main類要使用D類的一個(gè)draw的方法,
方法名叫 draw():void
不管draw里面是怎樣的,Main類里就是這樣用,
那么你就從這個(gè)接口出發(fā),里面怎么實(shí)現(xiàn)是D類的事了,Main類只關(guān)心怎么用而已.
其他類要使用它,還是相同
這就大大減少了維護(hù)的成本.
因?yàn)槿绻鸇類出問題,Main類是完全不用改變的.
從上觀察,公開的接口越多,維護(hù)成本就越大.
維護(hù)就越麻煩.所以我們先寫接口,定死了公開的接口,
那維護(hù)就很方便,出錯(cuò)也只是一個(gè)類的事,而不用同時(shí)修改多個(gè)協(xié)同類