設計模式 策略模式和簡單工廠實現計算器

2021-10-06 08:37:59 字數 1328 閱讀 1943

設計模式 -- 策略模式和簡單工廠的結合

#####1 策略模式(strategy)介紹和優缺點

#####2 策略模式和簡單工廠的結合

#####3 策略模式的應用

設計模式:物件導向語言開發過程中,對各種問題和場景的解決方案的沉澱, 是解決問題的套路,提出場景--解決問題--總結沉澱--推廣應用

行為型設計模式:關注物件和行為的分離

設計模式都是為了解決一類問題而存在的,往往在解決一類問題的同時會帶來的新的問題,會有對應的解決方案。設計模式不是萬能的

程式設計:不關係功能性,關注的非功能性的要求,程式的擴充套件性--可讀性--健壯性

策略模式已經完成了!

策略模式應對業務處理中,會有多種相似處理方式(演算法),然後封裝成演算法+抽象,此外,呼叫環節也有擴充套件要求的,來個context

好處:演算法封裝,有抽象可以擴充套件; 呼叫環節轉移,可以擴充套件;

缺陷:上端必須知道全部演算法,而且知道對映關係

最終我們會解決問題,但是這個不屬於策略模式

//3 轉移了演算法建立以及對映關係,封裝了一下

//icaculation = factory.getcaculation(operate);

icaculation = factory.getcaculationreflection(operate);

//1 轉移了演算法邏輯

//iresult = icaculation.caculation(iinputleft, iinputleft);

caculationcontext context = new caculationcontext(icaculation, iinputleft, iinputright);

//2 轉移了演算法的呼叫邏輯

iresult = context.action();

擴充套件性---抽象---反射---動態

/// /// 不僅把物件建立給遮蔽了,而且對映關係也可以配置檔案決定了

///

///

///

public static icaculation getcaculationreflection(string operate)

";assembly assembly = assembly.load(dlltype.split(',')[1]);

type type = assembly.gettype(dlltype.split(',')[0]);

return (icaculation)activator.createinstance(type);

}

設計模式 簡單工廠和策略模式

模式的核心是工廠類,這個類負責產品的建立,而客戶端可以免去產品建立的責任,這實現了責任的分割。但由於工廠類集中了所有產品建立邏輯的,如果不能正常工作的話會對系統造成很大的影響。如果增加新產品必須修改工廠角色的原始碼改工廠角色的原始碼。個人理解就是在乙個工廠內 工廠類 定義好規範標準 父類,虛方法 然...

設計模式 簡單工廠模式 策略模式

名詞理解 工廠 factory 模式我們可以做如下理解,假設有乙個audi的公司生產汽車 似乎也不用假設了 它掌握一項核心的技術就是生產汽車,另一方面,它生產的汽車是有不同型號的,並且在 不同的生產線上進行組裝。當客戶通過銷售部門進行預定後,audi公司將在指定的生產線上為客戶生產出它所需要的汽車。...

設計模式之簡單工廠模式和策略模式

簡單工廠模式將物件的建立與使用解耦,由工廠負責建立具體物件,應用需要物件時只需呼叫工廠類的api即可。比如編寫乙個計算器 可使用工廠模式 如上圖所示,加減乘除分別繼承operation類,重寫getresult方法。compute ctory為工廠類 public class compute cto...