設計模式(一):學習大綱

設計模式(一):學習大綱

該系列文章,是在學習網上課程時的學習總結,可能會有一些瑕疵和錯誤,看到的可以留言反饋,謝謝~

學習意義

重要性的看法

設計模式老生常談了,對程序員的後續發展是很重要的,可以有效提升代碼的可讀性,具體來看,有如下用途:

  • 應對面試,面試裏面裝高手;
  • 裝杯,寫出來的代碼別人看到了只能說牛皮;
  • 複雜邏輯的結構用設計模式的思想來實現代碼,才能實現的好;
  • 源碼、框架裏面很多設計模式思想,不懂就看不懂了;
  • 一切爲了職場未來更好的裝杯。

大綱

image.png

面向對象

  • 四大特性:繼承、封裝、多態、抽象;
  • 面向對象和麪向過程的區別和聯繫;
  • 面向對象的分析、設計、編程;
  • 接口和抽象類的區別和聯繫;
  • 如何基於接口實現而不是基於實現;
  • 爲何要多用組合而不是繼承;
  • 面向過程中的貧血模型和麪向對象的充血模型;

設計原則

  • SRP 單一職責原則;
  • OCP 開閉原則;
  • LSP 里氏替換原則;
  • ISP 接口隔離原則;
  • DIP 依賴倒置原則;
  • DRY 原則;
  • KISS 原則;
  • YAGNI 原則;
  • LOD 原則

設計模式

設計模式是一系列方法論的抽象模型,大部分是用來解決代碼的可拓展性問題,在學習這一塊的時候,重點是要知道這些設計模式是用來解決什麼問題的,在什麼場景下用,並且不過度設計。

  • 創建型
    • 單例模式
    • 工廠模式
    • 建造者模式
    • 原型模式
  • 結構型
    • 代理模式
    • 橋接模式
    • 裝飾者模式
    • 適配器模式
    • 門面模式
    • 組合模式
    • 享元模式
  • 行爲型
    • 觀察者模式
    • 模板模式
    • 策略模式
    • 職責鏈模式
    • 迭代器模式
    • 狀態模式
    • 訪問者模式
    • 備忘錄模式
    • 命令模式
    • 解釋器模式
    • 中介模式

編程規範

目前市面上已經有很多要求規範了,所以這裏也都是一些規章要求等,照着規範來就行了。

比如,我們直接用阿里的《代碼規範》即可,在 IDEA 裏也有其對應的插件實現,儘量遵守即可。

代碼重構

代碼重構是一個持續迭代的過程,而每次採用的方法就是上面所說的那些:設計思想、設計原則、設計模式、編程規範等。在每次的重構過程中,靈活運用這些方法論,避免過度優化即可。

  • 重構的目的、對象、時機、方法;
  • 保證重構後不引入新的問題:單元測試和集成測試;

之間的聯繫

  • 面向對象是下面所有方法論的基礎,其核心的4大特性,保證方法論的實現;
  • 設計原則是設計模式的指導思想,許多設計模式都是實現了設計原則;
  • 設計模式就是具體的實現,比設計原則更加的具體好懂;
  • 編程規範更加註重代碼的細節,更好落地;
  • 編程規範是上面所有的基石,只有保證改完後不出現新的錯誤纔是一次好的更改。

討論

哪一部分最重要

我認爲是設計原則,因爲設計模式是對設計原則的更具體實現,規範的話注重的太細節,重構每次採用的也是這些方法,所以還是原則最重要。

設計模式爲什麼要強調是面向對象的設計方法論

所有的或抽象或具體都是根據面向對象的4大特性來抽象出來的。在面向過程或函數式編程等編程模型中,並不是全部適用。

公衆號截圖




文章在公衆號「iceWang」第一手更新,有興趣的朋友可以關注公衆號,第一時間看到筆者分享的各項知識點,謝謝!筆芯!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章