原创 來說說(Memorandum)備忘錄模式

1.什麼是備忘錄模式? 根據他的名字來分析,我們就知道他是來保存一些狀態的,當回滾的時候,就可以來進行返回,撤銷等操作,就像我們coding的時候,寫錯了,要直接control + z來進行返回,當我們又不想破壞對象的原封裝性,又要來存儲

原创 來說說<Builder>創建模式

1.什麼是創建者模式?在什麼時候使用? 當我們要創建一個複雜的系統,並且這種系統由着特定的複雜的步驟組合而成,我們要怎麼辦?就像老闆要你去採購一批電腦,電腦的配置各有所不同,品牌也不同,而電腦由不同的部件組成,主板,內存,顯示器,機箱等組

原创 來說說<Bridge>橋接模式

1,什麼是橋接模式? 通常的例子就是,像畫刷一樣,有12種顏色,分別有大中小三種筆刷,我們要怎麼組合才最簡單,最優化?最笨的方法需要組合3 * 12 = 36 次才能達到我們的要求,如過我們像毛筆一樣,有三種大中小的毛筆,但是有12種的顏

原创 來說說(AbstractFactory)靜態工廠模式

1。什麼時候需要靜態工廠模式?     (1)一個系統要獨立於它的產品的創建、組合和表示時。     (2)一個系統要由多個產品系統中的一個來配置時。     (3)當你要強調一系列相關的產品對象的設計以便進行聯合使用時。     (4)

原创 來說說(Strategy)策略模式

1.什麼是策略模式?爲了解決什麼問題? 實現某一個功能有多種算法或者策略,我們可以根據環境或者條件的不同選擇不同的算法或者策略來完成該功能。如查找、排序等,一種常用的方法是硬編碼(Hard Coding)在一個類中,如需要提供多種查找算

原创 來說說SubClass沙盒模式

1,子類沙盒模式的意義。 此模式其實是一種非常小巧的模式,其實也是一種小技巧,我們來說說遊戲中的技能系統的設計吧,它大致分爲主動技能,被動技能,增益技能,減益技能,一個技能又可能有多種表現形式,有種不同的等級,那我們怎麼辦呢?憑藉我這麼多

原创 來說說(Composite)組合模式

1、組合模式應用分析   組合模式可以適用以下情形:   ◊ 希望把對象表示成部分—整體層次結構;   ◊ 希望用戶忽略組合對象與單個對象的不同,用戶將統一地使用組合結構中所有對象。   組合模式具有以下特點:   ◊ 定義了

原创 來說說(Singleton)單例模式

1.單例模式很常見,這多餘的就不說了,我們來實現一個多線程下面的單例,在傳統的單例模式下面,我們可以完全保證在程序的整個運行週期類只存在一個實例,但是在多線程的情況下,由於內存沒有共享等原因,很有肯能造成多個實例,我們通常的解決方案就是給

原创 來說說(Facade)外觀模式

外觀模式的實用性?    1.爲一個複雜子系統提供一個簡單接口。     2.提高子系統的獨立性。     3.在層次化結構中,可以使用Facade模式定義系統中每一層的入口。 代碼實現 using System; using Unit

原创 C# 容器詳解及其整理

C# 中大致分爲如下幾種容器。 Array,Arraylist, List<T>,ListLined<T>,Queue<T>,Stack<T>,Dictionary<K,T> Array:他是最簡單的數據類型了    1,他的內存是連續的

原创 來說說(SimpleFactory)簡單工廠模式

1。何爲簡單工廠模式?就是把創建的過程封裝起來,客戶只關心需要什麼樣的產品,不關心整個產品創建的過程。我們來實現一個簡單的工廠模式。我們就拿客戶點餐爲例,客戶想要什麼食品,他不關心食品是怎麼做的,食品的做法直接交給工廠即可。我們來創建一個

原创 來說說(Decorator)裝飾者模式

1.裝飾者模式爲了解決的問題? 在面向對象設計原則中,是優先使用組合而非繼承,我們要擴展一個基類的時候,我們增加了新功能,要是修改基類的話,那麼所有的對象都有這個新功能了,我們在子類中擴展的話,那麼勢必會造成子類與子類有着大量相似,重複的

原创 來說說(Template Method )模版方法模式

1,無處不在的Template Method 模式 需求的變化是軟件設計永恆的定理,如何管理變化帶來的複雜性呢?,設計模式的藝術性和複雜度就在於如何分析,和發現分析系統中的變化點和穩定點 Template Method模式的意圖就是定義一