讀了這篇介紹設(shè)計模式的文章济舆,小記一下庐船。
https://www.raywenderlich.com/46988/ios-design-patterns
- Facade 門面模式
統(tǒng)一提供對外的接口,隱藏內(nèi)部復(fù)雜的細節(jié)炊豪。
對于調(diào)用接口的用戶而言市怎,不需要關(guān)心接口的內(nèi)部實現(xiàn)犀填。
facade2.png
- Decorator 裝飾者模式
在不改變原有類的基礎(chǔ)上,拓展類的屬性和方法超升。
iOS 中最常見的裝飾者模式的例子就是 Category 和 Delegate 了入宦。
- Adapter 適配器模式
將不兼容的接口封裝后,暴露出來使用室琢。
iOS 中最常見的適配器就是各種各樣的代理協(xié)議了乾闰。
一個類遵循了某個協(xié)議,那么其他類調(diào)用這個類的時候盈滴,訪問協(xié)議指定的方法即可涯肩。
- Observer 觀察者模式
一個類只關(guān)心另一個類的狀態(tài)變化轿钠,而并不關(guān)心其內(nèi)部實現(xiàn)時,就常使用觀察者模式病苗。
iOS 中的 Notifications 就是一個很好的發(fā)布-訂閱模型疗垛,發(fā)布者并不需要知道訂閱者的存在。
除此之外硫朦,還有個常用的 KVO (Key-Value-Observing) 鍵值觀察方法贷腕,用于監(jiān)聽某個對象的某個屬性的變化。
- Memento 備忘錄模式
將一個狀態(tài)保存下來咬展,用于恢復(fù)狀態(tài)泽裳。