说明:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
类图:

代码:
/*使用策略模式 对发送邮件不同角色的人进行不同内容格式设置*/
/// <summary>
/// 定义一个策略接口
/// </summary>
public abstract class Strategy
{
/// <summary>
/// 发送邮件格式方法
/// </summary>
/// <param name="Content">内容</param>
public abstract void SendEmailFormat(string Content);
/// <summary>
/// 发送短信格式方法
/// </summary>
/// <param name="Content">短信内容</param>
public abstract void SendSmsFormat(string Content);
}
/// <summary>
/// 定义发送格式策略 包装 发送内容的格式一 :为可以查看所有内容
/// </summary>
public class ServiceBaseStrategy : Strategy
{
public override void SendEmailFormat(string Content)
{
if (string.IsNullOrEmpty(Content))
return;
Console.WriteLine(Content);
}
public override void SendSmsFormat(string Content)
{
if (string.IsNullOrEmpty(Content))
return;
Console.WriteLine(Content);
}
}
/// <summary>
/// 定义领导发送邮件和短信内容格式 :领导只看结果,这里截取内容最后的部分
/// </summary>
public class ServiceRoleStrategy : Strategy
{
public override void SendEmailFormat(string Content)
{
Console.WriteLine(Content.Substring(Content.LastIndexOf(Content, Content.Length - 10)));
}
public override void SendSmsFormat(string Content)
{
Console.WriteLine(Content.Substring(Content.LastIndexOf(Content, Content.Length - 10)));
}
}
浙公网安备 33010602011771号