23種設計模式 委派模式 策略模式

2021-09-13 20:10:35 字數 2907 閱讀 6678

​ 精簡程式邏輯,便於閱讀

​ 其基本作用是負責任務的排程和分配任務,和**模式很像,可以看做是一種特殊情況下的靜態**的全權**,但是**模式注重過程,但是委派模式注重結果。

​ 是一種行為型模式。

​ 一般delegate,dispatcher結尾的都是委派

​ 老闆叫經理幹活,經理通過不同的內容叫不同的員工去做事情

​ 首先定義介面,把幹活的內容抽象出來

public

inte***ce

iemployee

接下來定義員工a和員工b

public

class

employeea

implements

iemployee

}

public

class

employeeb

implements

iemployee

}

經理記錄員工

public

class

leader

implements

iemployee

//專案經理自己不幹活

public

void

doing

(string command)

}

老闆叫經理幹活

public

class

boss

}

測試

public

class

delegatetest

}

這種方式能夠避免我們使用if或者switch去判斷

}​ 能夠幫助我們消除程式中大量的if else 和switch語句

​ 能夠消除程式中大量冗餘**和多重條件轉移語句

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

​ 如果系統中有有很多類,他們的區別僅僅在於他們的行為不同。

​ 乙個系統需要動態的在幾種演算法中選擇一種

​ 購買商品有多種優惠:

public

inte***ce

promotionstrategy

public

class

groupbuystrategy

implements

promotionstrategy

}

public

class

emptystrategy

implements

promotionstrategy

}

public

class

couponstrategy

implements

promotionstrategy

}

public

class

promotionactivity

public

void

execute()

}

public

class

promotionactivitytest

else

if(stringutils.

equals

(promotionkey,

"cash"))

promotionactivity.

execute();}}

上述方式封裝改為工廠方法

public

class

promotionstrategyfactory

private

static

final promotionstrategy non_promotio =

newemptystrategy()

;public

static promotionstrategy getpromotionstrategy

(string promotionkey)

private

inte***ce

promotionkey

}

測試類使用

public

static

void

main

(string[

] args)

23種設計模式之策略模式

定義 定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。型別 行為類模式 類圖 策略模式是對演算法的封裝,把一系列的演算法分別封裝到對應的類中,並且這些類實現相同的介面,相互之間可以替換。在前面說過的行為類模式中,有一種模式也是關注對演算法的封裝 模版方法模式,對照類圖可以看到,策略模...

23種設計模式(11) 策略模式

定義 定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。型別 行為類模式 類圖 策略模式是對演算法的封裝,把一系列的演算法分別封裝到對應的類中,並且這些類實現相同的介面,相互之間可以替換。在前面說過的行為類模式中,有一種模式也是關注對演算法的封裝 模版方法模式。對照類圖可以看到,策略模...

23種設計模式之 策略模式

策略模式也叫政策模式,它是將定義的演算法家族,分別封裝起來,讓他們之間可以相互替換,從而讓演算法的變化不會影響到使用演算法的使用者。public inte ce strategy public class contentstrategya implements strategy public cla...