一、適配器模式
適配器模式簡單來說就是讓你的代碼根據不同的情況發生相對應的變化(適配)
??:在控制器中關聯VIew與Model,當這個視圖的Model對象有多個的時候,在View中無法對這些Model進行一一的處理,這時候就需要建立個“適配器”的類
1.建立protocol,protocol中定義接口,用于返回適配后的數據對象
2.建立適配器類,適配器類中實現protocol的接口,可以先類似作為抽象類只返回nil
3.建立適配器子類,子類中實現同適配器類的方法,但這時候根據具體傳入的Model對象類型,進行適配,返回對應的處理結果。
4.在View中創建一個加載數據的方法,傳入類型為id<適配協議>,在方法中為子視圖賦值
5.在controller中創建需要的Model對象數據,利用墮胎的思想創建適配器,然后通過適配器類通用的方法將數據傳遞給View
二、策略模式
定義一系列的算法,把每一個算法封裝起來, 并且使它們可相互替換。本模式使得算法可獨立于使用它的客戶而變化
??:有兩個輸入框,一個為輸入電話號碼,一個為輸入郵件,需要在textField代理方法中對輸入值進行驗證,這時候同樣利用多態的方式,建立策略類進行驗證
1.創建策略抽象類,類中驗證方法的正確性,輸入為textField,包含一個屬性errorMessage,用于提示。
2.在自定義的textField中,導入抽象類并創建一個該對象和一個自定義的驗證方法,方法中獲取抽象類中的errorMessage中,若為nil則為輸入正確。
3.具體的策略實現,在于創建對應的策略子類,實現抽象類中的驗證方法返回errorMessage。
4.在controller中創建textField并,初始化子類策略對象給testField中抽象策略類賦值
5.這樣實現的時候只需要利用,調用textField的統一驗證方法就行了。
三、工廠模式
定義一個創建對象的接口,讓其子類自己決定實例化哪一個工廠類,工廠模式使其創建過程延遲到子類進行
??:有兩個工廠蘋果工廠和谷歌工廠,生產不同的手機和手表,在用戶需要切換手機和手表的時候只需要切換工廠就行了,實際的工廠內部生產流程則不去關心。
1.創建一個工廠管理類,定義一個接口用于返回工廠,傳入值為工廠枚舉值,并根據枚舉值去實現這個接口返回對應的工廠。
2.創建一個抽象工廠類,分別定義生產手機和手表的接口
3.創建兩個具體工廠分別為蘋果和谷歌,并各自實現生產手機和手表的接口,返回基類的手機和手表的子類創建
4.創建抽象手機基類和手表基類,以及兩種手機,兩種手表子類。
5.在controller中根據工廠管理類中傳入工廠枚舉創建工廠,然后工廠調用生產方法即可完成對應產品的生產。