demo:oc代碼:https://github.com/xinsun001/iOS-15UI-oc.git[https://github.com/xinsun001/iOS...
觀察者是一種行為設(shè)計(jì)模式, 允許一個(gè)對(duì)象將其狀態(tài)的改變通知其他對(duì)象。觀察者模式在iOS里有現(xiàn)成的方案一個(gè)是KVO,一個(gè)是通知中心。但是swift限制了動(dòng)態(tài)性,想要使用KVO還...
裝飾模式是一種結(jié)構(gòu)型設(shè)計(jì)模式, 允許你通過(guò)將對(duì)象放入包含行為的特殊封裝對(duì)象中來(lái)為原對(duì)象綁定新的行為。 裝飾器模式在別的語(yǔ)言里搞的云里霧里,在swift里就很簡(jiǎn)單,因?yàn)閟wif...
橋接模式是一種結(jié)構(gòu)型設(shè)計(jì)模式, 可將一個(gè)大類或一系列緊密相關(guān)的類拆分為抽象和實(shí)現(xiàn)兩個(gè)獨(dú)立的層次結(jié)構(gòu), 從而能在開(kāi)發(fā)時(shí)分別使用。 我們定義一個(gè)抽象的圖形接口和一個(gè)圖形管理接口:...
適配器模式是一種結(jié)構(gòu)型設(shè)計(jì)模式, 它能使接口不兼容的對(duì)象能夠相互合作。現(xiàn)實(shí)生活中很多適配器模式的例子,比如MacBook的電源適配器,把220V的電壓轉(zhuǎn)換成20V的電壓,再比...
工廠方法是一種創(chuàng)建型設(shè)計(jì)模式,其在父類中提供一個(gè)創(chuàng)建對(duì)象的接口,允許子類決定實(shí)例化對(duì)象的類型。 現(xiàn)在我們來(lái)定一個(gè)抽象產(chǎn)品類: 一個(gè)動(dòng)物抽象類,里邊有個(gè)type屬性表示種類,一...
外觀模式是一種結(jié)構(gòu)型設(shè)計(jì)模式, 能為程序庫(kù)、 框架或其他復(fù)雜類提供一個(gè)簡(jiǎn)單的接口。外觀模式在現(xiàn)實(shí)生活中有很多例子,比如買(mǎi)火車(chē)票的黃牛,二手房的中介、基金經(jīng)理等,只需要告訴他們...
單例模式是一種創(chuàng)建型設(shè)計(jì)模式, 讓你能夠保證一個(gè)類只有一個(gè)實(shí)例, 并提供一個(gè)訪問(wèn)該實(shí)例的全局節(jié)點(diǎn)。iOS里有很多單例模式的存在: UIApplication、NSUserDe...
責(zé)任鏈模式是一種行為設(shè)計(jì)模式, 允許你將請(qǐng)求沿著處理者鏈進(jìn)行發(fā)送。 收到請(qǐng)求后, 每個(gè)處理者均可對(duì)請(qǐng)求進(jìn)行處理, 或?qū)⑵鋫鬟f給鏈上的下個(gè)處理者。 其實(shí)iOS事件響應(yīng)鏈就是一種...
模板方法模式:在超類中定義了一個(gè)算法的框架, 允許子類在不修改結(jié)構(gòu)的情況下重寫(xiě)算法的特定步驟。現(xiàn)在有個(gè)訂單要處理,我們定義超類: 超類里定義了處理訂單的步驟,生成訂單,支付訂...
策略模式:定義一系列的算法,把它們一個(gè)個(gè)封裝起來(lái), 并且使它們可相互替換?,F(xiàn)在我們來(lái)定義一個(gè)計(jì)算器,加減乘除四個(gè)功能: 然后我們來(lái)個(gè)管理類,來(lái)執(zhí)行這些算法,并且可以在外部切換...