中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

深圳網(wǎng)站建設(shè)公司哪家專業(yè)今日國內(nèi)新聞10則

深圳網(wǎng)站建設(shè)公司哪家專業(yè),今日國內(nèi)新聞10則,環(huán)保設(shè)備網(wǎng)站建設(shè)模板,wordpress網(wǎng)站正在建設(shè)中🚀簡(jiǎn)介 🐤作為一個(gè)開發(fā)人員,開發(fā)需要選擇一款開發(fā)工具,如在編寫C#時(shí),我們可以選擇VisualStudio進(jìn)行開發(fā),也可以使用Rider 進(jìn)行開發(fā)。 🐳該模式定義了一系列算法,并將每個(gè)算法封裝起來…

🚀簡(jiǎn)介

🐤作為一個(gè)開發(fā)人員,開發(fā)需要選擇一款開發(fā)工具,如在編寫C#時(shí),我們可以選擇VisualStudio進(jìn)行開發(fā),也可以使用Rider 進(jìn)行開發(fā)。

🐳該模式定義了一系列算法,并將每個(gè)算法封裝起來,使它們可以相互替換,且算法的變化不會(huì)影響使用算法的客戶。策略模式屬于對(duì)象行為模式,它通過對(duì)算法進(jìn)行封裝,把使用算法的責(zé)任和算法的實(shí)現(xiàn)分割開來,并委派給不同的對(duì)象對(duì)這些算法進(jìn)行管理。

👻策略模式的主要角色如下:
  1. 抽象策略(Strategy)類:這是一個(gè)抽象角色,通常由一個(gè)接口或抽象類實(shí)現(xiàn)。此角色給出所有的具體策略類所需的接口。
  2. 具體策略(Concrete Strategy)類:實(shí)現(xiàn)了抽象策略定義的接口,提供具體算法實(shí)現(xiàn)或行
  3. 環(huán)境(Context)類:持有一個(gè)策略類的引用,最終給客戶端調(diào)用。

🚀案例

我們通過一個(gè)活動(dòng)策劃來舉例策略模式,如商城中的店鋪搞促銷活動(dòng),有時(shí)活動(dòng)是買一送一,有時(shí)候是全場(chǎng)八折。

🐤抽象策略類(活動(dòng)共同的接口)

public interface IStrategy
{void show();
}

🐤具體策略角色,對(duì)策略類進(jìn)行活動(dòng)A“買一送一”活動(dòng)B“全場(chǎng)八折”具體實(shí)現(xiàn)

public class StrategyA : IStrategy
{public void show(){Console.WriteLine("買一送一");}
}public class StrategyB : IStrategy
{public void show(){Console.WriteLine("全場(chǎng)8折!");}
}
🐤定義環(huán)境角色( Context ):用于連接上下文
Context類有一個(gè)構(gòu)造函數(shù),接受一個(gè)IStrategy類型的參數(shù),用于初始化_strategy成員變量,然后根據(jù)傳遞給這個(gè)對(duì)象的具體策略對(duì)象,執(zhí)行相應(yīng)的行為。這樣,我們可以在運(yùn)行時(shí)改變Context對(duì)象的行為,只需要傳遞不同的策略對(duì)象即可。
public class Context
{private IStrategy _strategy;public Context(IStrategy strategy){_strategy = strategy;}public void salesManShow(){_strategy.show();}
}

🐤測(cè)試類

class MyClass
{public static void Main(string[] args){var contextA = new Context(new StrategyA());contextA.salesManShow();var contextB = new Context(new StrategyB());contextB.salesManShow();}
}

運(yùn)行結(jié)果!

🚀優(yōu)缺點(diǎn)

優(yōu)點(diǎn):
  1. 策略類之間可以自由切換由于策略類都實(shí)現(xiàn)同一個(gè)接口,所以使它們之間可以自由切換。
  2. 易于擴(kuò)展,增加一個(gè)新的策略只需要添加一個(gè)具體的策略類即可,基本不需要改變?cè)械拇a,符合開閉原
  3. 避免使用多重條件選擇語句(if else),充分體現(xiàn)面向?qū)ο笤O(shè)計(jì)思想。
缺點(diǎn):
  1. 客戶端必須知道所有的策略類,并自行決定使用哪一個(gè)策略類。
  2. 策略模式將造成產(chǎn)生很多策略類,可以通過使用享元模式在一定程度上減少對(duì)象的數(shù)量。
使用場(chǎng)景
  • 一個(gè)系統(tǒng)需要?jiǎng)討B(tài)地在幾種算法中選擇一種時(shí),可將每個(gè)算法封裝到策略類中。
  • 一個(gè)類定義了多種行為,并且這些行為在這個(gè)類的操作中以多個(gè)條件語句的形式出現(xiàn),可將每個(gè)條件分支移入它們各自的策略類中以代替這些條件語句。
  • 系統(tǒng)中各算法彼此完全獨(dú)立,且要求對(duì)客戶隱藏具體算法的實(shí)現(xiàn)細(xì)節(jié)時(shí)。
  • 系統(tǒng)要求使用算法的客戶不應(yīng)該知道其操作的數(shù)據(jù)時(shí),可使用策略模式來隱藏與算法相關(guān)的數(shù)據(jù)結(jié)構(gòu)。
  • 多個(gè)類只區(qū)別在表現(xiàn)行為不同,可以使用策略模式,在運(yùn)行時(shí)動(dòng)態(tài)選擇具體要執(zhí)行的行為。
http://www.risenshineclean.com/news/41810.html

相關(guān)文章:

  • 如何制作網(wǎng)站平臺(tái)北京aso優(yōu)化
  • 銷項(xiàng)稅和進(jìn)項(xiàng)導(dǎo)入是在國稅網(wǎng)站做嗎制作網(wǎng)站費(fèi)用
  • 自己的電腦做服務(wù)器建立網(wǎng)站的方法百度競(jìng)價(jià)搜索
  • 做能支付的網(wǎng)站貴嗎國內(nèi)免費(fèi)域名
  • 小說網(wǎng)站建設(shè)的支柱app推廣活動(dòng)策劃方案
  • 做門的網(wǎng)站1688的網(wǎng)站特色
  • python 做的網(wǎng)站有哪些如何在網(wǎng)絡(luò)上推廣產(chǎn)品
  • 顏色搭配的網(wǎng)站班級(jí)優(yōu)化大師官網(wǎng)下載
  • 什么網(wǎng)站可以做醫(yī)療設(shè)備的磁力鏈
  • 做網(wǎng)站 要域名 主機(jī) 還有啥東莞網(wǎng)站seo公司
  • 建設(shè)銀行網(wǎng)站機(jī)構(gòu)長沙seo推廣外包
  • 金華網(wǎng)站建設(shè)外包百度定位店鋪位置怎么設(shè)置
  • 臺(tái)式機(jī)做網(wǎng)站服務(wù)器百度的首頁
  • 東莞市住房建設(shè)局網(wǎng)站成都百度推廣開戶公司
  • 鄭州網(wǎng)站建設(shè)漢獅百度下載安裝到桌面
  • 天津河?xùn)|區(qū)網(wǎng)站建設(shè)持續(xù)優(yōu)化完善防控措施
  • 今日河南新聞聯(lián)播上海整站seo
  • 專門做簡(jiǎn)歷的網(wǎng)站有哪些長沙關(guān)鍵詞優(yōu)化方法
  • 檢察院加強(qiáng)網(wǎng)站建設(shè)長沙優(yōu)化網(wǎng)站推廣
  • 在線做heatmap的網(wǎng)站谷歌推廣怎么操作
  • 深夜免費(fèi)軟件app下載seo營銷的概念
  • 一般網(wǎng)站用什么軟件做怎么注冊(cè)一個(gè)自己的網(wǎng)站
  • 軟件公司網(wǎng)站系統(tǒng)集成建設(shè)營銷推廣的特點(diǎn)
  • wordpress寄出郵箱地址小學(xué)生班級(jí)優(yōu)化大師
  • 外貿(mào)平臺(tái)免費(fèi)網(wǎng)站網(wǎng)站優(yōu)化推廣平臺(tái)
  • 學(xué)做網(wǎng)站設(shè)計(jì)需要多少錢網(wǎng)頁制作教程步驟
  • 網(wǎng)站建設(shè)整個(gè)過程個(gè)人介紹網(wǎng)頁制作
  • 做外貿(mào)在哪個(gè)網(wǎng)站北京百度推廣電話號(hào)碼
  • 上海阿里巴巴做網(wǎng)站免費(fèi)的短視頻app大全下載
  • 商業(yè)網(wǎng)站改版需要多久愛站網(wǎng)綜合查詢