讀了這篇介紹設計模式的文章,小記一下。
https://www.raywenderlich.com/46988/ios-design-patterns
- Facade 門面模式
統一提供對外的接口,隱藏內部復雜的細節。
對于調用接口的用戶而言,不需要關心接口的內部實現。
facade2.png
- Decorator 裝飾者模式
在不改變原有類的基礎上,拓展類的屬性和方法。
iOS 中最常見的裝飾者模式的例子就是 Category 和 Delegate 了。
- Adapter 適配器模式
將不兼容的接口封裝后,暴露出來使用。
iOS 中最常見的適配器就是各種各樣的代理協議了。
一個類遵循了某個協議,那么其他類調用這個類的時候,訪問協議指定的方法即可。
- Observer 觀察者模式
一個類只關心另一個類的狀態變化,而并不關心其內部實現時,就常使用觀察者模式。
iOS 中的 Notifications 就是一個很好的發布-訂閱模型,發布者并不需要知道訂閱者的存在。
除此之外,還有個常用的 KVO (Key-Value-Observing) 鍵值觀察方法,用于監聽某個對象的某個屬性的變化。
- Memento 備忘錄模式
將一個狀態保存下來,用于恢復狀態。