设计模式与工程实践课件_第1页
设计模式与工程实践课件_第2页
设计模式与工程实践课件_第3页
设计模式与工程实践课件_第4页
设计模式与工程实践课件_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

设计模式与工程实践王翔(VisionWang)Architect(.NET,XML,PKI)2009-01-17设计模式与工程实践王翔(VisionWang)个人资料王翔软件架构师,主要从事.NET、XML、公钥基础设施的开发。专注于数据(尤其是XML信息)的生产、加工、交换、提炼等过程。此外,参与了一系列有关应用密码技术和PKI环境保护信息系统数据安全的项目。最喜欢数学,平常案头总是摆一本数学练习题。闲暇时间喜欢写作,通过发表多种技术文章与国内外同行交流各种数据应用经验。项目间隙经常到各海滨城市徒步旅行、野外露营、出海航行、极限运动。座右铭:天行健,君子以自强不息。个人资料王翔Agenda简介GoF23与工程实践案例分析其他Agenda简介简介当你要开发一个小型的系统,整个系统只有两三人开发,系统活不过5年,商业逻辑单纯,程序代码不超过万行,这时,你随便做,影响不大。反之,若要架构大型系统,你需要慎思,套用模型与架构,将前人的经验当作基石,这样系统设计才不至于陷入发散。然而,你不会一开始就做大系统,风险太高。所以,要练习,最好从小系统开始使用模型与架构,如此才能检讨与学习,日后方能在大系统中自如运用。《设计模式——基于C#的工程化实现及扩展》序胡百敬简介当你要开发一个小型的系统,整个系统只有两三人开发,系统活简介系统分析与设计是门艺术,问题的解法与何为问题是交织的,而各模式的搭配使用技巧不同,存乎一心,需要巧思与反复琢磨,方可有好的解法。本书立意明确,除了告诉你问题的类型与解法,还提供了可以立即演绎的程序代码。相信这本案头的工具书可以提供你一个不错的深思起点,造就有弹性、能扩充、易维护的软件实力。《设计模式——基于C#的工程化实现及扩展》序胡百敬简介系统分析与设计是门艺术,问题的解法与何为问题是交织的,而简介设计模式可以当做软件开发中的独孤九剑。在软件设计中最大的敌人就是需求不断的变化,需求变化无休无止,软件交付日期也就无限期的延迟。我们无法做到以不变应万变,但如果能提前预见到一些变化,就能用很小的代价来应对剧烈的变化。GOF总结的经典设计模式虽只有23种,但不管是创建型模式、结构型模式还是行为型模式,归根结底都是在寻找软件中可能的变化,并封装这些变化。“料敌机先”为设计模式精髓之一,只不过这里的敌是需求的变化而已。对于设计模式如果不能够做到灵活自如的运用,不仅威力大减,甚至于弄巧成拙,“活学活用”为设计模式精髓之二。《设计模式——基于C#的工程化实现及扩展》序李会军简介设计模式可以当做软件开发中的独孤九剑。在软件设计中最大的简介设计模式无处不在模式不是框架,不能套用模式也不是过程,模式也不是简单的“问题的解决方案”系统的设计也不是含有设计模式就好更不是含有越多的设计模式就越好简介设计模式无处不在简介真正为软件设计界带来系统化设计模式思维的是DesignPatterns:ElementsofReusableObject-OrientedSoftware此后各个领域开始出现各种模式化思维成例数据及数据库架构实时系统集成Web/AJAX……简介真正为软件设计界带来系统化设计模式思维的是简介反模式的思维决定在项目中使用哪一种设计模式一位开发人员通过介绍希望在一项工程中使用设计模式开发人员通过包括设计模式的最佳实践来改进项目的渴望开发人员天生的好奇心驱使他利用这个项目来研究设计模式项目中应用了所有知名的设计模式项目团队和交付的应用程序由于不自然地引入太多设计模式而遭受损失。不必要的复杂性会从已经完成的工作量、开发团队了解发生事情的能力、应用程序的实际性能和功能的正确性等方面影响开发成果设计模式是专业知识的主要来源,尽管使用他们的效果很好,但是全部使用他们就未必也是好的简介反模式的思维简介实际解决方案设计模式的描述包含了使用模式的目标语境,必须考虑如何确保设计模式匹配项目设计模式不是来源于当某人阅读了一本设计模式的著作后,问:“我可以把这个设计模式使用在什么地方?”而是来源于某人寻找已发现问题的解决方案简介实际解决方案GoF23与工程实践CreationalAbstractFactoryBuilderFactoryMethodPrototypeSingletonCreatesaninstanceofseveralfamiliesofclassesSeparatesobjectconstructionfromitsrepresentationCreatesaninstanceofseveralderivedclassesAfullyinitializedinstancetobecopiedorclonedAclassofwhichonlyasingleinstancecanexistStructuralAdapterBridgeCompositeDecoratorFacadeFlyweightProxyMatchinterfacesofdifferentclassesSeparatesanobject’sinterfacefromitsimplementationAtreestructureofsimpleandcompositeobjectsAddresponsibilitiestoobjectsdynamicallyAsingleclassthatrepresentsanentiresubsystemAfine-grainedinstanceusedforefficientsharingAnobjectrepresentinganotherobjectBehavioralCoRCommandInterpreterIteratorMediatorMementoObserverStateStrategyTemplateMethodVisitorAwayofpassingarequestbetweenachainofobjectsEncapsulateacommandrequestasanobjectAwaytoincludelanguageelementsinaprogramSequentiallyaccesstheelementsofacollectionDefinessimplifiedcommunicationbetweenclassesCaptureandrestoreanobject'sinternalstateAwayofnotifyingchangetoanumberofclassesAlteranobject'sbehaviorwhenitsstatechangesEncapsulatesanalgorithminsideaclassDefertheexactstepsofanalgorithmtoasubclassDefinesanewoperationtoaclasswithoutchangeGoF23与工程实践CreationalAbstractFGoF23与工程实践设计模式是一种设计思想,表达这种思想最简洁的方式就是UML+Demo就够了。但Demo和实际工程应用还是有一段差距的,原因不多,但每一个都需要在Demo之余好好考虑:此外,设计模式的一个亮点就是提高代码的可重用性,如果设计一套比较适合实际工程使用的设计模式库,可以节省八股式反复Demo的工作。GoF23与工程实践设计模式是一种设计思想,表达这种思想最简GoF23与工程实践工程中设计模式总是结合某些开发语言而每种语言本身都有自己的特点C++、C#、Java、DelphiVB、VisualFox、COBOLSQL、XQueryJavaScript、VBScript、ActionScript、PowerShellPython、Perl、Ruby、PHPF#XML、HTML、BPEL……GoF23与工程实践工程中设计模式总是结合某些开发语言GoF23与工程实践领域建模阶段的模式化特征分析GoF23与工程实践领域建模阶段的模式化特征分析GoF23与工程实践的章节安排GoF23与工程实践的章节安排GoF23与工程实践工程中实践设计模式的感受打破一些固有的套路用自己习惯的语言以简洁、直接的手段解决易于变化的问题不要仅仅将依赖关系定格在对象体系,更多考虑到应用开发、运维不同生命周期中参与者的工作特点,将依赖拓宽到对象、配置体系、数据存储和服务体系面向Web、面向混合信息体系、面向服务GoF23与工程实践工程中实践设计模式的感受GoF23与工程实践开发人员个性与设计模式的关系程序开发人员在对待自己工作的时候总或多或少有些“至于至善”得心结代码、类库、应用框架不仅仅是老板和项目经理眼中的产品,更是我们敝帚自珍的工作成果但修改自己的代码,尤其是因为上游需求不确定带来这种压力的时候,总不是那么愉快地经历我们要借鉴并应用那些成熟的套路,将变化抽象并集中在几个点,然后把他们交给运维人员来处理,而我们更多把时间放在创造性工作模式是现成的,但实现套路您自己的GoF23与工程实践开发人员个性与设计模式的关系案例分析案例分析案例分析收集所有可能涉及的运行系统案例分析收集所有可能涉及的运行系统案例分析多种方式“圈”定涉及的系统案例分析多种方式“圈”定涉及的系统案例分析案例分析案例分析案例分析案例分析主要集成模式P2P可用技术P2P模式下的应用特点ADO、ADO.NET通过ADO/ADO.NET完成对关系数据库、活动目录的访问和修改DTS/SSIS直接从某系统的数据库层次向目标系统写入信息COM+在需要严格事务性保证的环境下,通过COM+完成包括复杂逻辑的集成工作WebService通过专用的WS定义,实现面向具体数据结构基于URI的访问案例分析主要集成模式可用技术P2P模式下的应用特点ADO、A案例分析主要集成模式MessageBroker可用技术MessageBroker模式下的应用特点企业定制的交换平台提供对包括ORACLE、SQLServer、MySQL、WMI、FILE、ADSI、MSMQ、MessageQ、MQ等各种数据源的支持,并提供统一基于配置的处理能力,最好默认提供线程池化的并行处理能力,有独立的监控手段和监控工具、提供丰富的定制处理流程APIDTS/SSIS提供丰富的管理、配置、集成和定制开发的API,有MOM和WMI等完善的监控机制,有良好的结构化异常处理能力,有友好的设计界面COM+可以提供不同DCOM对象和支持COM接口对象的开发,适于处理对遗留系统的集成封装BizTalkServer适于大型的Broker环境,与活动目录环境集成,具有良好的高可用能力,配置、管理、监控、消息追踪、数据映射和集成流程编排都有不错的支持。不过相应的学习成本较高,对运维人员技术要求也比较高。案例分析主要集成模式可用技术MessageBroker模式案例分析主要集成模式MessageBroker可用技术企业定制的交互平台或BizTalkServer作为Route/Orchestration的机制,同时提供必要的公共服务Provider;调用接口采用支持Route功能的WCF;如果涉及比较复杂的数据流转,而且采用大型中间件产品过于复杂的话,可以扩展WF实现控制流转;案例分析主要集成模式可用技术企业定制的交互平台或BizTal案例分析主要集成模式DeadLetter可用技术MessageBroker模式下的应用特点Queue+自定义补发处理Queue自己可以对发送失败的消息临时落地到本地其他队列,此时可以用自定义的补发进程处理。BizTalkMessageBoxBizTalk会把消息先持久化,如果交易过长或者存在错误,可以通过访问MessageBox获得发送失败的信息,然后根据BizTalk的发送策略定义是否需要重发、重发何种特征的消息。SSIS/DTS在交换过程中通过定义异常流程,将发送失败的消息保存在中间表,然后通过定制的SQLJob定期检查重新发送。案例分析主要集成模式可用技术MessageBroker模式案例分析结合交换情景分析案例分析结合交换情景分析案例分析增加约束条件Broker采用SQLServer2005的SSIS,他直接通过数据集成访问预定接收的数据库,并且将信息写入Web门户的内容数据库和短信平台的消息库;“通知生成服务”退化为SSIS的存储过程和SQLJob;Proxy采用Broker服务器网络NAT的方式,在分支企业的外部网提供一个新的IP地址,保证办公网和外部网的应用都可以以“VLAN内部”的形式与Broker交互;短信服务与外部供应商采用MSMQ+计划任务的方式,计划任务其实要执行一个本地.vbs文件,每次执行都从失败队列的文件夹把文件Cut到发送队列的文件夹,如果检查某个文件创建时间与最近修改时间隔大于2小时,那么就认为是死信,交给后面的电话通知机制处理;案例分析增加约束条件其他推荐的资料DesignPatterns:ElementsofReusableObject-OrientedSoftwarePatternsofEnterpriseApplicationArchitectureEnterpriseIntegrationPatternsDataPatterns

/en-us/library/ms998461.aspxAJAXPatterns

/PatternsDesignPatternsfor.NET

/EnterpriseLibrary

/entlibSecurityPattern

/其他推荐的资料设计模式与工程实践王翔(VisionWang)Architect(.NET,XML,PKI)2009-01-17设计模式与工程实践王翔(VisionWang)个人资料王翔软件架构师,主要从事.NET、XML、公钥基础设施的开发。专注于数据(尤其是XML信息)的生产、加工、交换、提炼等过程。此外,参与了一系列有关应用密码技术和PKI环境保护信息系统数据安全的项目。最喜欢数学,平常案头总是摆一本数学练习题。闲暇时间喜欢写作,通过发表多种技术文章与国内外同行交流各种数据应用经验。项目间隙经常到各海滨城市徒步旅行、野外露营、出海航行、极限运动。座右铭:天行健,君子以自强不息。个人资料王翔Agenda简介GoF23与工程实践案例分析其他Agenda简介简介当你要开发一个小型的系统,整个系统只有两三人开发,系统活不过5年,商业逻辑单纯,程序代码不超过万行,这时,你随便做,影响不大。反之,若要架构大型系统,你需要慎思,套用模型与架构,将前人的经验当作基石,这样系统设计才不至于陷入发散。然而,你不会一开始就做大系统,风险太高。所以,要练习,最好从小系统开始使用模型与架构,如此才能检讨与学习,日后方能在大系统中自如运用。《设计模式——基于C#的工程化实现及扩展》序胡百敬简介当你要开发一个小型的系统,整个系统只有两三人开发,系统活简介系统分析与设计是门艺术,问题的解法与何为问题是交织的,而各模式的搭配使用技巧不同,存乎一心,需要巧思与反复琢磨,方可有好的解法。本书立意明确,除了告诉你问题的类型与解法,还提供了可以立即演绎的程序代码。相信这本案头的工具书可以提供你一个不错的深思起点,造就有弹性、能扩充、易维护的软件实力。《设计模式——基于C#的工程化实现及扩展》序胡百敬简介系统分析与设计是门艺术,问题的解法与何为问题是交织的,而简介设计模式可以当做软件开发中的独孤九剑。在软件设计中最大的敌人就是需求不断的变化,需求变化无休无止,软件交付日期也就无限期的延迟。我们无法做到以不变应万变,但如果能提前预见到一些变化,就能用很小的代价来应对剧烈的变化。GOF总结的经典设计模式虽只有23种,但不管是创建型模式、结构型模式还是行为型模式,归根结底都是在寻找软件中可能的变化,并封装这些变化。“料敌机先”为设计模式精髓之一,只不过这里的敌是需求的变化而已。对于设计模式如果不能够做到灵活自如的运用,不仅威力大减,甚至于弄巧成拙,“活学活用”为设计模式精髓之二。《设计模式——基于C#的工程化实现及扩展》序李会军简介设计模式可以当做软件开发中的独孤九剑。在软件设计中最大的简介设计模式无处不在模式不是框架,不能套用模式也不是过程,模式也不是简单的“问题的解决方案”系统的设计也不是含有设计模式就好更不是含有越多的设计模式就越好简介设计模式无处不在简介真正为软件设计界带来系统化设计模式思维的是DesignPatterns:ElementsofReusableObject-OrientedSoftware此后各个领域开始出现各种模式化思维成例数据及数据库架构实时系统集成Web/AJAX……简介真正为软件设计界带来系统化设计模式思维的是简介反模式的思维决定在项目中使用哪一种设计模式一位开发人员通过介绍希望在一项工程中使用设计模式开发人员通过包括设计模式的最佳实践来改进项目的渴望开发人员天生的好奇心驱使他利用这个项目来研究设计模式项目中应用了所有知名的设计模式项目团队和交付的应用程序由于不自然地引入太多设计模式而遭受损失。不必要的复杂性会从已经完成的工作量、开发团队了解发生事情的能力、应用程序的实际性能和功能的正确性等方面影响开发成果设计模式是专业知识的主要来源,尽管使用他们的效果很好,但是全部使用他们就未必也是好的简介反模式的思维简介实际解决方案设计模式的描述包含了使用模式的目标语境,必须考虑如何确保设计模式匹配项目设计模式不是来源于当某人阅读了一本设计模式的著作后,问:“我可以把这个设计模式使用在什么地方?”而是来源于某人寻找已发现问题的解决方案简介实际解决方案GoF23与工程实践CreationalAbstractFactoryBuilderFactoryMethodPrototypeSingletonCreatesaninstanceofseveralfamiliesofclassesSeparatesobjectconstructionfromitsrepresentationCreatesaninstanceofseveralderivedclassesAfullyinitializedinstancetobecopiedorclonedAclassofwhichonlyasingleinstancecanexistStructuralAdapterBridgeCompositeDecoratorFacadeFlyweightProxyMatchinterfacesofdifferentclassesSeparatesanobject’sinterfacefromitsimplementationAtreestructureofsimpleandcompositeobjectsAddresponsibilitiestoobjectsdynamicallyAsingleclassthatrepresentsanentiresubsystemAfine-grainedinstanceusedforefficientsharingAnobjectrepresentinganotherobjectBehavioralCoRCommandInterpreterIteratorMediatorMementoObserverStateStrategyTemplateMethodVisitorAwayofpassingarequestbetweenachainofobjectsEncapsulateacommandrequestasanobjectAwaytoincludelanguageelementsinaprogramSequentiallyaccesstheelementsofacollectionDefinessimplifiedcommunicationbetweenclassesCaptureandrestoreanobject'sinternalstateAwayofnotifyingchangetoanumberofclassesAlteranobject'sbehaviorwhenitsstatechangesEncapsulatesanalgorithminsideaclassDefertheexactstepsofanalgorithmtoasubclassDefinesanewoperationtoaclasswithoutchangeGoF23与工程实践CreationalAbstractFGoF23与工程实践设计模式是一种设计思想,表达这种思想最简洁的方式就是UML+Demo就够了。但Demo和实际工程应用还是有一段差距的,原因不多,但每一个都需要在Demo之余好好考虑:此外,设计模式的一个亮点就是提高代码的可重用性,如果设计一套比较适合实际工程使用的设计模式库,可以节省八股式反复Demo的工作。GoF23与工程实践设计模式是一种设计思想,表达这种思想最简GoF23与工程实践工程中设计模式总是结合某些开发语言而每种语言本身都有自己的特点C++、C#、Java、DelphiVB、VisualFox、COBOLSQL、XQueryJavaScript、VBScript、ActionScript、PowerShellPython、Perl、Ruby、PHPF#XML、HTML、BPEL……GoF23与工程实践工程中设计模式总是结合某些开发语言GoF23与工程实践领域建模阶段的模式化特征分析GoF23与工程实践领域建模阶段的模式化特征分析GoF23与工程实践的章节安排GoF23与工程实践的章节安排GoF23与工程实践工程中实践设计模式的感受打破一些固有的套路用自己习惯的语言以简洁、直接的手段解决易于变化的问题不要仅仅将依赖关系定格在对象体系,更多考虑到应用开发、运维不同生命周期中参与者的工作特点,将依赖拓宽到对象、配置体系、数据存储和服务体系面向Web、面向混合信息体系、面向服务GoF23与工程实践工程中实践设计模式的感受GoF23与工程实践开发人员个性与设计模式的关系程序开发人员在对待自己工作的时候总或多或少有些“至于至善”得心结代码、类库、应用框架不仅仅是老板和项目经理眼中的产品,更是我们敝帚自珍的工作成果但修改自己的代码,尤其是因为上游需求不确定带来这种压力的时候,总不是那么愉快地经历我们要借鉴并应用那些成熟的套路,将变化抽象并集中在几个点,然后把他们交给运维人员来处理,而我们更多把时间放在创造性工作模式是现成的,但实现套路您自己的GoF23与工程实践开发人员个性与设计模式的关系案例分析案例分析案例分析收集所有可能涉及的运行系统案例分析收集所有可能涉及的运行系统案例分析多种方式“圈”定涉及的系统案例分析多种方式“圈”定涉及的系统案例分析案例分析案例分析案例分析案例分析主要集成模式P2P可用技术P2P模式下的应用特点ADO、ADO.NET通过ADO/ADO.NET完成对关系数据库、活动目录的访问和修改DTS/SSIS直接从某系统的数据库层次向目标系统写入信息COM+在需要严格事务性保证的环境下,通过COM+完成包括复杂逻辑的集成工作WebService通过专用的WS定义,实现面向具体数据结构基于URI的访问案例分析主要集成模式可用技术P2P模式下的应用特点ADO、A案例分析主要集成模式MessageBroker可用技术MessageBroker模式下的应用特点企业定制的交换平台提供对包括ORACLE、SQLServer、MySQL、WMI、FILE、ADSI、MSMQ、MessageQ、MQ等各种数据源的支持,并提供统一基于配置的处理能力,最好默认提供线程池化的并行处理能力,有独立的监控手段和监控工具、提供丰富的定制处理流程APIDTS/SSIS提供丰富的管理、配置、集成和定制开发的API,有MOM和WMI等完善的监控机制,有良好的结构化异常处理能力,有友好的设计界面COM+可以提供不同DCOM对象和支持COM接口对象的开发,适于处理对遗留系统的集成封装BizTalkServer适于大型的Broker环境,与活动目录环境集成,具有良好的高可用能力,配置、管理、监控、消息追踪、数据映射和集成流程编排都有不错的支持。不过相应的学习成本较高,对运维人员技术要求也比较高。案例分析主要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论