浅析.net策略模式
来源: 阅读:640 次 日期:2014-12-18 14:06:22
温馨提示: 小编为您整理了“浅析.net策略模式”,方便广大网友查阅!

对于策略模式的理解:当一个业务有多种需求时候,在某个时候需要使用不同的方式来计算结果。这时候不同的方式可以理解为不同的策略来解决同样的问题。 例如:商场收银系统计算价格,1:正常计算 2:商品打折计算,3:满300减100等方式。就可以按三种策略来处理需求。

简单的说:策略模式就是用来封装算法的,但在实践中,我们发现可以用他来封装几乎任何类型的规则,只要在分析过程中听到需要在不同的时间应用不同的业务规则,就可以考虑使用策略模式处理这种变化的可能性。

代码如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace DesignModel

{

/// <summary>

/// 策略模式

/// </summary>

public class TacticsModel

{

public string type { get; set; }

public virtual string GetResult()

{

return "";

}

}

public class Normal:TacticsModel

{

public override string GetResult()

{

return "正常计算价格";

}

}

public class Discount : TacticsModel

{

public override string GetResult()

{

return "按打折计算价格";

}

}

public class Preferential : TacticsModel

{

public override string GetResult()

{

return "满300减100活动";

}

}

public class CashContext

{

TacticsModel tm = null;

public CashContext(string type)

{

switch (type)

{

case "1":

tm = new Normal();

break;

case "2":

tm = new Discount();

break;

case "3":

tm = new Preferential();

break;

default:

break;

}

}

public string GetResult()

{

return tm.GetResult();

}

}

}

这种方式和简单工厂方式差不多,只是有稍微区别。 简单工厂模式需要暴漏给客户端两个类,策略模式和工厂模式的简单结合只暴漏了一个CashContext类

客户端调用代码:

代码如下:

Console.WriteLine("请计算类型1正常,2打折,3优惠:");

string type = Console.ReadLine();

CashContext cc = new CashContext(type);

Console.WriteLine(cc.GetResult());

名单

更多信息请查看IT技术专栏

更多信息请查看网络编程
手机网站地址:浅析.net策略模式
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map