敲開「設計模式」的大門

2021-10-06 10:55:18 字數 1887 閱讀 3252

什麼是設計模式?

設計:(1)設計一定是有原則的(2)設計的最後結果,一定能體現出它的優點

模:就是模式、模板的意思

式:就是方式、方法的意思

模式,就是可以作為模型或者模板的方式或方法,類似於範例。(就是提供一種已經為我們搭好的框架,是我們進而去完善我們的內容)

設計模式(design pattern):是指在軟體開發中,經過驗證的,用於解決在特定環境下重複出現的特定問題的解決方案。

設計模式是一套被反覆使用、多數人知曉的、經過分類編目的、**設計經驗的總結。使用設計模式是為了可重用**、讓**更容易被他人理解、保證**可靠性。

常見的23種設計模式:

建立型模式(抽象了物件例項化的過程,用來幫助建立物件的例項):抽象工廠模式(abstract factory)、建造者模式(builder)、工廠方法模式(factory method)、原型模式(prototype)、單例模式(singleton)

結構型模式(描述如何組合類和物件以獲得更大的結構):介面卡模式(adapter)、橋接模式(bridge)、組合模式(composite)、裝飾模式(decorator)、外觀模式(facade)、享元模式(flyweight)、**模式(proxy)

行為型模式(描述演算法和物件間職責的分配):職責鏈模式(chain of responsibility)、命令模式(command)、直譯器模式(interpreter)、迭代器模式(iterator)、協調者模式(mediator)、備忘錄模式(memento)、觀察者模式(observer)、狀態模式(state)、策略模式(strategy)、模板方法模式(template method)、訪問者模式(visitor)

乙個好的軟體在設計好之後,應該對擴充套件是開放的(即軟體寫好後,任何功能的新增不應該修改軟體的**,而是應該去擴充套件內容);對修改是封閉的(即乙個軟體寫好以後,是不允許再次開啟去修改裡面的內容的)。這裡提到的即使設計模式所要遵循的一大重要原則——開放封閉原則。

物件導向的三大特徵:封裝、繼承、多型------

封裝看似是一件很簡單的事情,但是實際上封裝是很難的。比如像我剛接觸設計模式之前,如果去是實現加減乘除四則運算,最直接的就是選擇無腦的將它們分別寫成四個函式然後放到乙個類裡面,然後再在這個類裡面加乙個if、else if、else的判斷函式就完成。而當我開始學習和了解了設計模式,才明白這樣的思路簡直糟糕的不能再糟糕了。就算是實現加減乘除四則運算這樣簡單的功能,稍微學習過一點設計模式也應該知到要最起碼五個類才能實現。即先要將加、減、乘、除分別寫到四個類當中去,對,沒有錯,寫到四個類當中(這就是一種好的封裝)!然後再寫乙個父類(在設計模式中,父類多為抽象類或者介面,而不是簡簡單單的普通的類,因為抽象類或者介面相較於普通的類能更好的實現多型),與加減乘除四個類是繼承關係。

多型是指相同的操作或者函式、過程可作用於多種型別的物件上並獲得不同的結果;不同的物件,收到同一訊息可以產生不同的結果。

多型的幾個條件:(1)必須要有抽象類或者介面,或者說要有抽象方法或者介面方法(2)子類繼承了抽象類或者介面,並且對抽象類或介面中的抽象方法進行了重寫(3)子類物件必須賦給父類物件,用父類物件去呼叫子類物件中重寫的抽象方法

輕輕敲開TCP的大門

徒手搭建伺服器 分布在不同地域的計算機,通過硬體等網路裝置使用通訊線路互相連線形成的乙個網格系統.計算機網路,可以很方便的進行 資訊的傳遞,資源的共享 網域名稱即為ip位址的別名,更方便記憶,當輸入網域名稱後 www.csdn.com 計算機會訪問網域名稱解析商,然後得到ip位址,再進行訪問.埠號的...

聽過講座《如何敲開世界500強企業大門》的感想

講座從乙個社會現象開始 現在的企業很缺人才,但另一方面,找不到工作的大學生卻也很多。這讓人很難理解,為什麼企業在缺人的情況下,依然有很多的大學生找不到工作呢,兩位世界500強企業的hr回答的很具有代表性 一位說企業很缺人才,不是大學生,大學生不等同於人才 另一位說 企業缺人才,大部分大學生還達不到人...

iOS資料 介面分開設計模式遇到的乙個問題

我們習慣在開發中把資料和介面分開實現,這種方式比較好,只需要在資料和介面中同時依賴乙個資料結構即可,這種做法對於解藕是乙個不錯的方式。但是有一些細節的地方可能會導致我們遇到一些很難查詢的bug,比如我們之前遇到的乙個問題,現在分享給大家。先來描述一下問題 我們在uitableview中加入了乙個向下...