iOS設計模式簡介

2021-09-23 21:21:11 字數 1052 閱讀 8127

開閉原則:

乙個模組的修改,對拓展開放而對修改關閉。

舉個例子:有乙個類在專案中很多地方被使用了,但是由於需求,想對這個類進行拓展,這裡可以使用繼承拓展出子類,可以對子類進行修改,盡量不要修改原來的類。

黎克特制代換原則:

子類父類可以替換,子類可以使用父類所有的方法,父類可以使用子類所有的方法。

舉個例子:有多個子類繼承了父類,並且實現了父類的抽象方法(雖然oc中沒有抽象方法或者是虛函式這個概念,但是父類方法不實現,就模擬了沒有具體實現的抽象方法或者叫虛函式),在用父類建立例項的時候,宣告可以用父類,建立例項可以用父類,也可以用其子類,這樣,所呼叫的方法就會自動切換到相應的例項的方法。這個就是黎克特制代換原則,和物件導向的多型類似。

依賴倒轉原則:

抽象不依賴於細節,細節依賴於抽象。(這個指的是介面)

舉個例子:乙個類的介面方法或者是繼承得來的抽象方法,需要通過[self …]呼叫所在類的自己的具體的方法,這個方法是私有的方法,並不會對外開放的。在oc中,只要這個具體的方法沒有寫在.**件中,就不會被外部使用,也可以降低看**的干擾。如果把這個具體的方法寫在.**件中,也就是暴露出來了,這樣會破壞封裝性,而且會直接影響黎克特制代換原則的操作。而且如果某乙個類繼承這個類,又會造成額外的差異。我們盡量要做到,抽象的方法(比如這裡是介面的方法)用具體實現的方法來實現,但是這個具體實現的方法不應該暴露出來,這就叫做抽象不依賴細節,細節依賴於抽象。

介面隔離原則:

一些介面盡量只做必要的事情,而不要做太多和這個介面無關的事情。嚴格遵守會讓原始碼復用性很高。

舉個例子:不要讓介面做一些超出它範圍的沒用的事情。

合成/聚合復用:

如果從乙個類擴充套件出另外乙個方法,盡量不要使用繼承,而是要使用組合。

舉個例子:如果原來的乙個類已經滿足不了需求了,需要新增方法,一般來說,可以用繼承,如果不到萬不得已,最好不用這麼做,其實可以將這個類當作乙個元件在新建的乙個類中來使用,然後這個新建的類,可以多建立幾個滿足需求的方法。在這裡,新的類就相當於乙個容器的作用。

設計模式 設計模式簡介

本次系列的文章摘自 設計模式 可復用物件導向軟體工程的基礎 erich gamma 等著,李英軍 等 譯 本文只是對設計模式做乙個簡單的介紹。設計模式一樣而言,有四個基本要素 1 設計模式 2 問題 3 解決方案 4 效果。設計模式是對被用來在特定的場景下解決一般設計問題的類和相互通訊的物件的描述。...

設計模式簡介

設計模式 design pattern 是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。設計模式是軟體工程 的基石脈絡,如同大廈 的結構一樣。模式名稱 pattern name 問題 problem 解決方案 solution 效果 consequences 設計模式分為三種型別,共...

設計模式簡介

1.裝飾模式 顧名思義,裝飾模式就是給乙個物件增加一些新得功能,而且是動態的,要求裝飾物件和被裝飾物件實現同乙個介面,且裝飾物件中持有被裝飾物件的乙個例項.2.觀察者模式 簡單來說,當乙個物件變化時,其他依賴該物件的物件都會收到通知,並且隨著變化 物件之間是一種一對多的關係.3.工廠模式 客戶端需要...