常見的設計模式有
1、單例設計
應用場景:確保程式執行期某個數,只有乙份例項,用於進行資源共享控制。
優勢:使用簡單,延時求值,易於跨模組
敏捷原則:單一職責原則
注意事項:確保使用者只能通過getinstance方法才能獲得,單例類的唯一例項。
2、**設計
應用場景:乙個類的某些功能由別的類來實現,但是不確定具體會是哪個類實現
優勢:解耦合
敏捷原則:開放-封閉原則
例項:tableview的資料來源delegate,通過和protocol配合,完成委託
列表row個數delegate、自定義的delegate
3、觀察者(通知)
應用場景:一般為model層對controller和view進行的通知方式,不關心誰去接收,只負責發布資訊
優勢:解耦合
敏捷原則:介面隔離原則,開放-封閉原則
例項:notification通知中心,註冊通知中心,任何位置都可以傳送訊息,註冊觀察者的物件可以接收。
kvo,鍵值對改變通知的觀察者。
4、工廠模式
應用場景:工廠方式建立類的例項,多與proxy模式配合,建立可替換**類。
敏捷原則:dip倚賴倒置原則
例項:專案部署環境中依賴多個不同型別的資料庫時,需要使用工廠配合proxy完成易用性替換。
注意事項:專案初期,軟體結構和需求都沒有穩定下來時,不建議使用此模式。
5、模版模式。
6、mvc模式
應用場景:是一種古老的設計模式,通過資料模型、控制器邏輯,檢視展示將應用程式進行邏輯劃分。
優勢:使系統層次清晰,職責分明,易於維護。
敏捷原則:對擴充套件開放-對修改封閉
例項:model-資料模型,view-檢視展示,controller進行ui展現和資料互動的邏輯控制
7、策略模式
應用場景:定義演算法族,封裝起來,使他們之間可以相互替換
優勢:使演算法的變化獨立於實用演算法的使用者
敏捷原則:介面隔離原則;多用組合,少用繼承;針對介面程式設計,而非實現。
例項:排序演算法,nsarray的sortedarrayusingselector;
注意事項:1,剝離類中易於變化的行為,通過組合方式嵌入抽象基類
2,變化的行為抽象基類為,所有可變變化的父類
3,使用者類的最終例項,通過注入行為例項的方式,設定易變行為防止繼承行為方式,導致無關行為汙染子類。完成策略封裝和可替換性。
常見的設計模式
常見的設計模式分為三類 建立型 結構型 行為型 單例模式 public class singleton public static singleton getinstance return thesingleton 簡單工廠模式 簡單工廠模式是a類想呼叫b類,不直接new b類,直接new出來耦合性...
常見的設計模式
單例模式 永遠只有這乙個例項物件,不管執行什麼操作。1 懶漢式 當呼叫方法時,才能獲取所需單例物件,單例物件才能被建立。2 餓漢式 初始類時,單例物件建立。實現單例條件 1.私有的建構函式 2.私有的靜態全域性變數 3.公有的靜態方法 工廠模式 sessionfactory.opensession ...
常見的設計模式
設計模式主要分三個型別 建立型 結構型和行為型。其中建立型有 一 singleton,單例模式 保證乙個類只有乙個例項,並提供乙個訪問它的全域性訪問點 二 abstract factory,抽象工廠 提供乙個建立一系列相關或相互依賴物件的介面,而無須指定它們的具體類。三 factory method...