設計模式篇

一. 什麼是設計模式html

  糾結了很久,今天終於下定決心開始寫設計模式系列,由於這個系列章節確實很差寫,在這以前,也看了好多關於設計模式的博客、視頻、書籍等,大多數用的例子要麼貓啊狗啊、大雁等動物類;要麼就是學生類,教師類,試想一下,哪一個項目中會用這些動物類教師類呢?編程

  我也和我同行的朋友交流了一下關於設計模式,對設計模式的理解,能夠分爲這麼幾個層次:設計模式

  ①:根本不知道什麼是設計模式。架構

  ②:據說過幾種設計模式,理解不深。ide

  ③:能寫出並理解幾種設計模式,但不知道在項目中該怎麼用。微服務

  毋庸置疑,可否靈活的運用好設計模式,是一個名開發工程師邁向架構師的必經之路,上面說的這麼玄乎,那麼到底什麼是涉及模式呢?這裏先借助金庸的武俠小說來類比一下。spa

  做爲金庸迷的我,金庸老師的「飛雪連天射白鹿,笑書神俠倚碧鴛」14部小說每一部看了都不低於3遍以上,對裏面個各類武功也是瞭如指掌,像效果比較炫麗,威力比較大的有:「喬幫主降龍十八掌、段譽的六脈神劍、楊過的黯然銷魂掌、任我行的吸星大法等等」,這些都是外家功夫,種類不少,一我的可能會多種,這就比如.Net的中MVC、EF、SignalR等等;固然也有內功心法,典型的有:」少林和尚的易筋經、張無忌的九陽神功」,這兩種功夫自己並無太大的殺傷力,但會了這種功夫,更容易融會貫通外家功夫,使外家功夫發揮出更大效果,拿到咱們開發領域,「設計模式」就是內功心法,沒有語言之分,它是一種模式,一種思想指導着咱們開發。設計

  那麼怎麼才能算精通設計模式呢?3d

  看過《倚天屠龍記》的朋友可能會記得裏面有這麼一個場景:趙敏冒充明教挑戰張三丰的時候,張無忌辦成小道童出來救場,在對陣三個家奴的的時候,張三丰教了張無忌一套太極拳法,裏面有這麼一段對話:代理

   

  張三丰演示完後,問張無忌:「無忌,你記住了多少」,張無忌回答說:「無忌不才,只有一小部分沒有記住」;過了一會,張三丰又問道:「如今能記住多少」,無忌說:「太師傅,我已經所有忘記了」,這時,張三丰說:「無忌你能夠上了」,結果顯然而知,對手被打的那叫一個慘啊。

  因此:設計模式的最高境界是,忘記設計模式,將23種的設計模式天然而然的融入開發中,哈哈,固然這個有點難,沒有個五年以上的功力,很難達到這個層次。

  

二. 設計模式的內容

  設計模式是一種套路,是把 「別人成功的例子」 拿過來靈活運用,咱們的優秀的前輩總結出來7個設計原則23種設計模式

設計原則:

    1. 單一職責原則    2. 里氏替換原則    3. 依賴倒置原則

    4. 接口隔離原則    5. 迪米特原則(最小知道原則)    6. 開閉原則

    7. 組合聚合原則

 

設計模式:

  1. 建立型模式 :工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。

  2. 結構型模式:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。

  3. 行爲型模式:策略模式、模板方法模式、觀察者模式、迭代器模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。

 

   解釋:設計模式只是一個大概的套路,不能生搬硬套,有一些作法多是多個設計模式的融合,有的也很難歸爲某個設計模式。不要爲了設計模式而設計模式,沒有十全十美的代碼。

  在上述設計模式中,大部分設計模式都用到了上面的設計思想,在設計模式中,咱們會常常看到:開閉原則、里氏替換原則(多態)、面向接口編程、面向抽象編程、抽象類、override覆寫這幾種技術。

  若是對於抽象類或者override不明白的,有必要先看一下下面的章節:

                           第一節:從面向對象思想(oo)開發、接口、抽象類以及兩者比較 

                          第二節:重寫(new)、覆寫(overwrite)、和重載(overload)

 

三. 系列章節

   下面將由淺入深,結合實際案例來說解設計原則和設計模式。

 

     第一節:見識設計模式的神器之處。

     第二節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第三節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第四節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第五節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第六節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第七節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第八節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第九節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十一節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十二節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十三節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十四節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十五節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十六節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十七節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十八節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第十九節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十一節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十二節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十三節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十四節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十五節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十六節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十七節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十八節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第二十九節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第三十節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第三十一節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第三十二節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     第三十三節:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

 (該系列推後了,目前計劃爲  SignalR → 微服務)

 

 

相關文章
相關標籤/搜索