設計模式

一、策略模式

策略模式定義了算法族,分別封裝起來,讓它們之間可以相互替換,此模式讓算法的變化獨立於使用算法的客戶。

設計原則

1.找出應用中可能需要變化之處,把它們獨立出來,不要和那些不需要變化的代碼混合在一起。

2.針對接口編程,而不是針對實現編程。

3.多用組合,少用繼承。


二、觀察者(Observer)模式

觀察者模式定義了對象之間的一對多依賴,這樣一來,當一個對象改變狀態時,它的所有依賴者都會收到通知並自動更新。

設計原則

1.爲了交互對象之間的鬆耦合設計而努力。


三、裝飾者模式

裝飾者模式動態地將責任附加到對象上。若要擴展功能,裝飾者提供了比繼承更有彈性的替代方案。

設計原則

1.類應該對擴展開放,對修改關閉。


四、工廠模式

工廠方法模式定義了一個創建對象的接口,但由子類決定要實例化的類是哪一個。工廠方法讓類把實例化推遲到子類。(利用繼承)

抽象工廠模式提供一個接口,用於創建相關或依賴對象的家族,而不需要明確指定具體類。(利用對象組合)

設計原則

1.要依賴抽象,不要依賴具體類。


五、單例模式

單例模式確保一個類只有一個實例,並提供一個全局訪問點。

雙重檢查加鎖,在sharedSingleton中減少使用同步

+ (Singleton *)sharedSingleton
{
    if(_sharedSingleton == nil)
    {
        @synchronized([Singleton class])
        {
            if(_sharedSingleton == nil)
            {
                _sharedSingleton = [[self alloc] init];
            }
        }
    }
    return _sharedSingleton;
}

六、命令模式

命令模式將“請求”封裝成對象,以便使用不同的請求、隊列或者日誌來參數化其他對象。命令模式也支持可撤銷的操作。

七、適配器模式與外觀模式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章