《大話設計模式》策略模式

2021-09-29 21:13:18 字數 1019 閱讀 7001

首先介紹一下策略模式的定義,如果看不大懂這個專業術語定義沒關係,繼續往下看,你就會明白啦。

策略模式(strategy):它定義了演算法家族,分別封裝起來,讓它們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的客戶。

接下來先給大家看一下策略模式的結構圖:

context上下文,用乙個concreatestrategy來配置,維護乙個對strategy物件的引用;concretestrategya,concretestrategyb,concretestrategyc為具體策略類,封裝了具體的演算法或行為,繼承strategy。

strategy類:定義所有支援的演算法的公共介面

//抽象演算法類

abstract

class

strategy

concretestrategy,封裝了具體的演算法或行為,繼承於strategy
class

concretestrategya

:strategy

}class

concretestrategyb

:strategy

}class

concretestrategyc

:strategy

}

context,用乙個concretestrategy來配置,維護乙個對strategy物件的引用
class

context

//上下文介面

public

void

contextinte***ce()

}

客戶端**
static

void

main

(string

args)

接下來,給大家用乙個超市收銀系統來實現一下所謂的策略模式。

大話設計模式 策略模式

前言 做事情的時候我們需要動動腦來簡化自己完成任務的負擔,這就需要講究策略了,我們會根據自己所處的環境列出所有的可能條件,再從中挑選合適的方法來完成這件事。就像我們過年回家,我們可以選擇高鐵 普通火車 還可以選擇硬座 軟座 臥鋪,這都是我們回家的策略 買不到直達的還得轉戰好幾個火車站,策略的最終到達...

大話設計模式 策略模式

前言 做事情的時候我們需要動動腦來簡化自己完成任務的負擔,這就需要講究策略了,我們會根據自己所處的環境列出所有的可能條件,再從中挑選合適的方法來完成這件事。就像我們過年回家,我們可以選擇高鐵 普通火車 還可以選擇硬座 軟座 臥鋪,這都是我們回家的策略 買不到直達的還得轉戰好幾個火車站,策略的最終到達...

大話設計模式 策略模式

上篇文章 大話設計模式 簡單工廠模式告訴了我們乙個網咖收費工廠物件怎樣建立收費形式 白天收費 夜間收費 的例項。簡單工廠 中有非常多 case分支語句 假設我們還想填加收費的形式 比方會員收費啊,通宵收費啊 就須要修改工廠 每次維護和擴充套件都要花費非常多時間,另外修改非常easy造成紕漏 比方之前...