大話設計模式(二)策略模式 簡單工廠

2021-08-28 07:35:09 字數 1072 閱讀 9562

定義了演算法,分別封裝起來,讓他們之間可以相互替換,此模式讓演算法的變化不會影響到使用演算法的使用者

/**

*定義乙個抽象的父類,包含乙個抽象的演算法amethod*/

public abstract class strategy

/***a類用a的實現去實現演算法a*/

public class concretestrategya extends strategy

}/**

*同樣的可以有b或者c,d演算法*/

配置乙個context來維護strategy的引用

public class context

/*** 上下文介面,根據具體的策略物件,呼叫其演算法的方法

*/public void contextinte***ce() }

/*** 根據不同的需求去例項化不同的演算法

*/context context = new context(new concretestrategya());

context contextb = new context(new concretestrategyb());

//例項化物件不同,所以呼叫的演算法就不同

strategy strategy;

public context(string type)

}/**

* 上下文介面,根據具體的策略物件,呼叫其演算法的方法

*/public void contextinte***ce()

/*** 根據不同的需求去例項化不同的演算法

*/context contexta = new context("a");

contexta.contextinte***ce();

context contextb = new context("b");

contextb.contextinte***ce();

策略模式的strategy類層次為context定義了一系列的可供重用的演算法或行為。繼承有助析取出這些演算法的公共功能。可以以相同的方式呼叫所有的演算法,並針對不同的演算法做專門的單元測試,降低了演算法類之間的耦合度。

大話設計模式 簡單工廠模式與策略模式

簡單工廠模式 運算類工廠 public class operationfactory case case case case sqr case sqrt case return oper 關聯關係 如下 class penguin bird private climate climate 聚合關係如...

大話設計模式 工廠模式 策略模式

工廠模式 以商場收費系統為例。打折 正常 送積分等手段 首先,有乙個抽象類cashsuper 收費操作,有三個繼承cashsuper的子類 cashnormal具體操作,重寫函式 其次,寫乙個cashfactory工廠類,來生產具體的操作類cashnormal等。策略模式 先寫乙個策略抽象類,然後寫...

大話設計模式 簡單工廠模式

學習c 1年的菜鳥,開始學習設計模式,學過了留下痕跡,歡迎一起談論學習。該模式總結 利用多型例項化不同的物件。include stdafx.h include include using namespace std class operate operate void setnumber1 int ...