標籤:設計 基礎 也會 組合 替換 一個 適合 服務 好的
java基礎學習總結之基本特徵,最開始學習的時候,是形而上的理解,用了3年多,再回頭看,理解起來頗為順理成章
語言學習大概就是這樣一種規律,學習,不甚解,應用,應用,漸深入人心,回頭一看,恍然一悟
最近總結設計模式的六大原則,感覺頗有聯絡,先列出6大原則:
迪米特法則,裡氏替換原則,依賴倒置,介面隔離,合成彙總,開閉原則
第一個,抽象
抽象並非java語言專屬。一句話:忽略無關細節,對事物的行為和屬性做抽象,反映為類中的域和方法
第二個,封裝
隱藏內部細節,只提供與外界通訊的介面。
這個特徵與迪米特法則有些聯絡,迪米特法則要求實體間發生作用要盡量少,使得各個類相互獨立,放大來說,各個系
統能相互獨立,幹自己的事,同事相容的向外提供服務,筆者覺得封裝這個詞用來形容小服務,微服務也挺適合
第三個、繼承
一個類派生出子類,稱為繼承,衍生類別繼承基類的方法和執行個體變數,並可以覆蓋或增加新的方法
這裡就產生了子類父類的概念。我們結合第一個特徵抽象,可以看到依賴倒置的原則就是這麼來的,抽象不能依賴於
具體而是讓具體依賴於抽象。
如果將繼承的概念廣泛化,那麼實現介面也會產生子類和父類,開閉原則要求內部對擴充開放,對修改關閉,與繼承有
很大的聯絡
裡氏替換原則更簡單的理解是,子類能出現的地方,父類一定也能出現並代替,在編程中其實很多地方都體現了,最常
見的 Map<xxx,xxx> map = new HashMap<>(); List<> list = new ArrayList<>(); 並非說一定要這樣寫,筆者開始用的時候其實
也不太理解為啥要這麼寫,直到後來看到書中作者的描述
合成和彙總原則,其實更好的詞是組合和彙總,現在很多概念的界限其實都不是那麼標準或嚴格了,我們將繼承和持有,
一般是持有有限,持有就是持有一個執行個體
總之,一個繼承誕生了無數的情形,開發人員從中得到了很多經驗的做法和原則,這個只能在設計和編碼中慢慢體會
第四個、多態
父類的方法在子類中表現出不同的行為。有多態,那就有繼承,有重寫,有父類引用指向子類對象
多態例子太多了,做web開發的見得不要太多。但是,但是,利用多態衍生出的設計模式才是精髓,整個23種設計模式
到處都有體現,多態的光芒,無處不在,我們的裡氏替換原則就是直接的體現。
java物件導向的基本特徵其實沒啥說的,難的是從中衍生的各種應用,譬如繼承關係的類的載入順序,設計模式,以及
我們的資料庫表設計(抽象和封裝能力),這些後面的篇章先預留著做總結。
java物件導向特徵 — 一句話概括