【调侃】ioc前世今生-编程开发技术

【调侃】ioc前世今生-编程开发技术

ID:30788431

大小:379.41 KB

页数:13页

时间:2019-01-03

【调侃】ioc前世今生-编程开发技术_第1页
【调侃】ioc前世今生-编程开发技术_第2页
【调侃】ioc前世今生-编程开发技术_第3页
【调侃】ioc前世今生-编程开发技术_第4页
【调侃】ioc前世今生-编程开发技术_第5页
资源描述:

《【调侃】ioc前世今生-编程开发技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、【调侃】IOC前世今生-编程开发技术【调侃】I0C前世今生原文出处:家住腊树下前些天,参与了公司内部小组的一次技术交流,主要是针对《I0C与AOP》,本着学而时习Z的态度及积极分享的精神,我就结合一个小故事來初浅地剖析一卜我眼屮的“10C前世今生”,以方便初学者能更直观的来学习与理解10C!也作抛砖引玉之用。(虽说故事中的需求有点小,但看客可在脑海中尽量把他放大,想象成一个很犬的应用系统)一、I0C雏形1、程序V1.0话说,多年以前UT公司提出一个需求,要提供一个系统,其中有个功能可以在新春佳节之际给公司员工发送一封邮件。邮件中给大家以新春祝福,并告知发放一定

2、数额的过节费。经分析,决定由张三、李四和王五來负责此系统的开发。其屮:由张三负责业逻辑控制模块LogicController的开发,此处简化为UT.LogicController.exe;由李四负责祝福消息管理类(GreetMessageService),并集成到组件UT.MessageService.dll由王五负责邮件功能帮助类(Ema订Helper),并提供组件UT.Email.dll。类依赖关系如下:王五邮件功能模块核心代码如-H:publicclassEmailHelper{publicvoidSend(stringmessage){Console.

3、Write("Fromeemail:"+message);}}李四消息管理模块核心代码如下:publicclassGreetMessageService{EmailHelpergreetTool;publicGreetMessageService(){grcctTool=newEmailHelper();}publicvoidGreet(stringmessage){greetTool・Send(message);}}张三业务集成模块核心代码如下:stringmessage二〃新年快乐!过节费5000.〃;McssageScrvicc.GrcctMcssagc

4、Scrviccservice=newMessageService・GreetMessageService();service.Greet(message);三人经过-个月的艰苦奋战,终于大功告成,系统也在春节其间成功发出问候信。企业如此关怀,给员工带來无比的温暖,因此深受全体员工好评!春节过后,相应的功能也移植到了与“UT公司”相关的“UT编辑部”和“UT房产”类似的应用当中,并在后继的“元宵”、“端午”、“屮秋”等节H屮得以广泛应用。2、程序V2.0又是一个年关将至说真的,过节费的多少,冇时可能直接影响整个假日的行程安排、从而影响假H的整体质量,因此部门领导

5、高度重视。而邮件通知的方式,在边远山区常常因为受网络环境的影响而无法正常收取,许多在外过年的同事对此颇有微词。后经多方考证,决得采用当下非常主流的电话语言播报的方式进行通知。于是乎,张三、李四、王五又忙起来了。但李四,却有点头疼了,因为他的模块现在不仅在“UT公司”内部使用,而且还在“UT编辑部”和“UT房产”也都有独立运行。如何让此处变化影响最小,就得费点脑筋。为了达到较好的效果,李四决定按以下方式进行整改。???①、初始设计方案如下:首先为了能讣不同“祝福方式”能有效替换,决定以“面向接口”的方式来进行分离。同时,让Ema订Helper的邮件通知类和Tel

6、ephonellelper的语音播报类都实现此接口。核心代码如下:voidSend(stringmessage);publicclassEmailHelper:ISendable{publicvoidSend(stringmessage){Consolc.Write(,zFromcemail:"+message);}}publicclassTelephoneHelper:ISendable{publicvoidSend(stringmessage){Console・Write("Frometelephone:"+message);}}再者,为了方便兼容新旧产品

7、,要求Controller决定当前采用什么方式进行通信,并以参数方式传给消息管理模块,核心代码如下:publicenumSendToolType{Email,Telephone,}【备注】:上述代码,并不是一个优秀的设计,在后继的优化方案当屮将被去除。publicclassGreetMessageService{ISendablegreetTool;publicGreetMessageService(SendToolTypesendToolType){if(sendToolType二二SendToolType.Emai1){greetTool=newUT.Em

8、ailV20.EmailHelper(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。