七天學會設計模式 – Facade

Facade

其實 Facade 的概念簡單來說,就是簡化使用物件方的介面。

舉個例來說,我建立了一個 Calendar 的 UICollectionView,可能裡頭會需要很多的邏輯判斷;像是「計算 Cell 的 Size」、「判斷日期是否為假日」、「判斷月份」⋯⋯等,但使用這個物件的人,基本上不需要(也不應該)去煩惱這些事情。

如同我們吹電風扇,只需要「強、中、弱、關」的使用介面,並不需要知道它內部是調整不同的功率去達到這效果,但對使用者而言並不是那麼的重要。

而在 MVC 的架構底下便是如此,使用者只需要 ViewController 上可以操作的 function 即可,底部的 Model 是如何操作以及邏輯運算如何,就相對的沒那麼重要,丟給系統去做就好!

所以在 Facade 的設計模式下,每個物件的介面需要被規劃過,哪些需要使用 private、fileprivate、class 等,適時地分配各個變數或常數及方法的使用權限。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s