七天學會設計模式 - Facade

Facade

其實 Facade 的概念簡單來說,就是簡化使用物件方的介面。 舉個例來說,我建立了一個 Calendar 的 UICollectionView,可能裡頭會需要很多的邏輯判斷;像是「計算 Cell 的 Size」、「判斷日期是否為假日」、「判斷月份」⋯⋯等,但使用這個物件的人,基本上不需要(也不應該)去煩惱這些事情。 如同我們吹電風扇,只需要「強、中、弱、關」的使用介面,並不需要知道它內部是調整不同的功率去達到這效果,但對使用者而言並不是那麼的重要。 而在 MVC 的架構底下便是如此,使用者只需要 ViewController 上可以操作的 function 即可,底部的 Model 是如何操作以及邏輯運算如何,就相對的沒那麼重要,丟給系統去做就好! 所以在 Facade 的設計模式下,每個物件的介面需要被規劃過,哪些需要使用 private、fileprivate、class 等,適時地分配各個變數或常數及方法的使用權限。

comments powered by Disqus