设计模式之策略模式 三国解读

概述:

在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。

三国演义中火烧赤壁前后孔明使用的策略(计谋)可谓是一个个精妙算法。

前情回顾:

曹操80万大军南征,取荆州,刘备败走新野,驻扎江夏。诸葛亮为抗曹而联吴,使用一系列策略,

策略A-舌战群雄只身过江,江东名士群起发难,孔明舌战群雄

策略B-草船借箭后为破周瑜暗害,神算三日江面大雾弥漫,终而草船借箭。

策略C-火烧赤壁:   继而在隆冬之际,建坛祭风,借来东南大风,火烧赤壁。

 

策略模式解读:

通俗的判断条件做法:

if (江东名士发难)

     策略A-舌战群雄

if  (神算大雾弥漫)

     策略B-草船借箭

if   (建坛借风)

     策略C-火烧赤壁

为提高扩展性,实现类的行为或其算法可以在运行时更改

接口interface:策略strategy

public int doOperation(string 各种前提因素);

实现类class:策略A

public int doOperation(string 江东名士发难) { 舌战群雄 }

实现类class:策略B

public int doOperation(string 神算大雾弥漫) { 草船借箭}

实现类class:策略C-火烧赤壁

public int doOperation(string 建坛借风) { 火烧赤壁}

构建使用策略的类class:锦囊库

类class:锦囊库

{

成员变量:策略strategy;

public int executeStrategy(string 各种前提因素){ 策略strategy.doOperation( 各种前提因素));

}

https://www.runoob.com/design-pattern/strategy-pattern.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值