设为首页 加入收藏

TOP

从真实项目中抠出来的设计模式——第一篇:策略模式(二)
2017-10-13 10:39:16 】 浏览:1880
Tags:真实 项目 出来 设计模式 第一篇 策略 模式
ketingBLLNew
= new EventMarketingBLLNew(); public override void Setup(LeafletEntity leaflet, DataRow row) { var eventMarketingInfo = eventMarketingBLLNew.GetEventMarketingInfo(leaflet.MarketingID, leaflet.ShopID); if (eventMarketingInfo != null) { //“短信”和“邮件”信息 var communicationInfo = eventMarketingInfo.EventmarketingSmsEdmContentList.OrderBy(m => Guid.NewGuid()) .FirstOrDefault(); if (communicationInfo == null) return; if (leaflet.CommunicationtypeEnum.HasFlag(CommunicationTypeEnum.邮件)) { //第三步:动态生成邮件模板 var styleInfo = CacheUtil.GetRandomEmailStyle(); var tuple = new EdmDraftBoxBLL().GetEdmHtmlTitle(communicationInfo.EDMJson, styleInfo.StyleId); leaflet.Title = tuple.Item1; leaflet.EDMContent = tuple.Item2; leaflet.Header = tuple.Item3; leaflet.SendSMSCount = 1; } if (leaflet.CommunicationtypeEnum.HasFlag(CommunicationTypeEnum.短信)) { leaflet.SMSContent = communicationInfo.SMSContent; leaflet.SendSMSCount = communicationInfo.SMSCount; } if (leaflet.CommunicationtypeEnum.HasFlag(CommunicationTypeEnum.彩信)) { leaflet.MMSContent = communicationInfo.MMSContent; } } } }

 

最后就是策略上下文:

    public class SetupContext
    {
        AbstractSetup abstractSetup = null;

        public void Set(AbstractSetup abstractSetup)
        {
            this.abstractSetup = abstractSetup;
        }

        public void Setup(LeafletEntity leaflet, DataRow row)
        {
            this.abstractSetup.Setup(leaflet, row);
        }
    }

 

好了,这个就是给大家演示的策略模式,简单来说就是一句话:针对同一命令或行为,不同的策略做不同的动作。 

 

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇抽象工厂模式(13) 下一篇【初码干货】关于.NET玩爬虫这些事

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目