設計模式筆記(三) 策略模式

2021-04-21 04:33:42 字數 915 閱讀 5941

策略模式:定義的演算法家族,分別封裝起來,讓它們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的客戶。策略模式是一種定義一種演算法的方法,從概念上看,所有這些演算法完成的都是相同的工作,只是實現不同,它可以以相同的方式呼叫所有演算法,減少了各種演算法類與使用演算法類之間的耦合。

優點:第一,策略模式的strategy類層次為context定義了一系列的可供重用的演算法或行為。繼承有助於析取出這些演算法中的公共功能;第二,簡化了單元測試,因為每個演算法都有自己的類,可以通過自己的介面單獨測試。

using system;

using system.collections.generic;

/**概述:

* 策略模式:定義的演算法家族,分別封裝起來,讓它們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的客戶。策略模式是一種定義一種演算法的方法,從概念上看,所有這些演算法完成的都是相同的工作,只是實現不同,它可以以相同的方式呼叫所有演算法,減少了各種演算法類與使用演算法類之間的耦合。

優點:第一,策略模式的strategy類層次為context定義了一系列的可供重用的演算法或行為。繼承有助於析取出這些演算法中的公共功能;第二,簡化了單元測試,因為每個演算法都有自己的類,可以通過自己的介面單獨測試。

*/namespace studesignmode.strategy

class concretestrategya : absstrategy

}class concretestrategyb : absstrategy

}class concretestrategyc : absstrategy

}//上下文

class context

public

void contextinte***ce()

}//客戶端測試

class clienttest}}

設計模式(三) 策略模式

策略模式的結構圖 引用 模版方法模式,對照類圖可以看到,策略模式與模版方法模式的區別僅僅是多了乙個單獨的封裝類context,它與模版方法模式的區別在於 在模版方法模式中,呼叫演算法的主體在抽象的父類中,而在策略模式中,呼叫演算法的主體則是封裝到了封裝類context中,抽象策略strategy一般...

設計模式(三) 策略模式

在策略模式 strategy pattern 中,乙個類的行為或其演算法可以在執行時更改。這種型別的設計模式屬於行為型模式。在策略模式中,我們建立表示各種策略的物件和乙個行為隨著策略物件改變而改變的 context 物件。策略物件改變 context 物件的執行演算法 上圖 三個類都實現了介面定義的...

設計模式筆記 策略模式

常用設計模式有23中,分為 建立型模式 主要用於建立物件 1 單例模式 2 工廠方法模式 3 抽象工廠模式 4 建造者模式 5 原型模式 行為型模式 主要用於描述物件或類是怎樣互動和怎樣分配職責 1 模板方法模式 2 中介者模式 3 命令模式 4 責任鏈模式 5 策略模式 6 迭代器模式 7 觀察者...