GO設計模式3 策略模式

2021-08-28 19:34:07 字數 794 閱讀 4873

所謂策略其實就是做一件事情有很多很多的方法,比如說乙個商場要搞**,**的方式有可能有很多:打折啊,滿100返50啊、積分等等之類的。這種不同的**方式在我們系統中表示就是乙個乙個的策略,並且策略是可以隨時更換的,這個時候在設計系統時就可以使用策略模式。

type strategy inte***ce
策略一

type onestrategy struct{}

func (onestrategy) process(param string) string

策略二

type twostrategy struct{}

func (twostrategy) process(param string) string

type operation struct

func (this *operation) operate(param string) string

one:=&onestrategy{}//策略一

two:=&twostrategy{}//策略二

oper:=&operation{}//操作

oper.strategy=one

ret:=oper.operate("cmd")

fmt.println(ret)

oper.strategy=two

ret=oper.operate("cmd")

fmt.println(ret)

Go 設計模式 策略模式

策略模式定義了演算法家族,在呼叫演算法家族的時候不感知演算法的變化,客戶也不會受到影響。下面用 大話設計模式 中的乙個例項進行改寫。例 超市中經常進行 活動,活動的 方法就是乙個個策略,如 滿一百減20 打八折 等。現在實現策略模式,用cashcontext生產策略,並完成策略的呼叫。1.首先定義所...

策略設計模式 Go語言設計模式 策略

策略設計模式 策略模式是一種行為設計模式。此模式允許在執行時不需要更改物件的型別定義時就能改變該物件的行為。用乙個例子來理解策略模式。假設構建乙個快取inmemorycache,它擁有固定的容量大小,當達到其最大容量時,快取中的某些舊項需要被逐出,這種驅逐可以通過幾種演算法來實現 現在的問題是如何將...

設計模式3策略模式

一種定義一系列演算法的方法,從概念上來看所有這些演算法完成的都是相同的工作,只是實現不同,它們可以以相同的方式呼叫相同的演算法,減少了各種演算法類和使用演算法類之間的耦合 策略模式的 策略類 為 所有context 定義了一系列的可供重用的演算法和行為.繼承有助於析取出這些演算法中的公共行為 策略模...