《Java編程思想》學習筆記:接口

接口

接口和內部類爲我們提供一種將接口與實現分離的更加結構化發方法;

抽象類和抽象方法

  • 包含抽象方法的類叫做抽象類;
  • 創建抽象類可以使類的抽象性更加明確起來,告訴用戶打算怎樣來使用它們;
  • 是一個不錯的重構工具,可以將公共方法沿着層次結構向上移動;

接口

  • 接口提供一種完全抽象的類,沒有任何的實現;
  • 接口被用來建立類與類之間的協議
  • 所有實現了該接口的類看起來都像這樣;

完全解耦

  • 如果一個方法操作的是一個類而非接口,那麼你就只能操作或者使用這個類及其子類,反之操作接口,那麼這個方法就可以應用於不在此繼承結構的某個類,放寬了限制,更好的複用,達到了解耦的目的;書中舉例如下:
    • 策略模式,能夠根據傳遞的參數對象不同(實際是在同一繼承結構中的不同的類)而具有不同的行爲;
    • 適配器模式,接受你所擁有的接口,併產出你所需要的接口(實際是去操作一個接口,但是這個接口有不同的實現);
  • 將接口從具體的實現中解耦使得接口可以應用於多種不同的具體實現,因此代碼具有更好的複用性;
  • 工廠方法模式,不同的產品可以有不同的實現,不同的工廠可以生成不同的實際產品對象。這樣,產品對象和工廠之間達到了完全的分離解耦,我們可以任意的更換工廠,以及改變生產不同的產品對象;可以將產品接口理解爲圖紙的抽象,工廠接口看成生產線。那麼不同的工廠就可以生產不同的產品。同樣的工廠也可以生產不同的產品,同樣的產品也可以在不同的工廠生產,非常的靈活,產品和工廠之間充分解耦。

小結

  • 任何抽象都應該是應真正的需求而產生的;
  • 恰當的原則應該是優先選擇類而不是接口;
  • 接口很容易被濫用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章