前面回顧
在拆分最小的粒度的時候蚁吝,如果不能拆分了旱爆,用共同的方法,可以用繼承窘茁,如果還能拆分怀伦,我們可以用組合的方式,用抽象類和接口山林,可以有幾十種不同的實現(xiàn)房待。
為什么要面向接口編程
如果我們面向繼承編程,會產(chǎn)生什么樣的后果呢驼抹。桑孩。。
父類抽離出來共有的方法框冀,子類去繼承流椒,子類需要知道父類都有什么方法,如果重寫的話明也,還要看看會不會對其他的方法產(chǎn)生影響宣虾。
面向接口(協(xié)議)編程,我們只需要去實現(xiàn)温数,各個實現(xiàn)類之間沒有關(guān)系安岂。能讓用戶只關(guān)心抽象數(shù)據(jù)類型的api接口而無視其他的具體實現(xiàn)。
我們在外層設(shè)計一個callback帆吻,內(nèi)部實現(xiàn)響應(yīng)(例如:下載的進(jìn)度更新)域那,進(jìn)行反饋,通知外部進(jìn)行下一步操作猜煮,外部不知道過程次员,相當(dāng)于黑盒子。但對于繼承王带,外層知道實現(xiàn)的方法淑蔚。
當(dāng)出現(xiàn)問題的時候,繼承這種情況鍋在外部愕撰,面向接口這種情況鍋就在內(nèi)部里面刹衫。