资源描述:
《数据驱动设计模式的研究及应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、摘要当前程序设计有两种发展趋势:软件生产口动化(乂名程序口动生成技术)和软件重用技术。这两个领域都自无数的专家将他们推陈出新,软件生产口动化领域有产生式编程、意图编程、特征驱动开发、模型驱动分析/设计(MDA/MDD).UML2.0;而软件重用技术则自库函数,模板,面向对象、设计模式、构件、框架、构架等复用技术,其目的都是为了提高软件生产效率,达到软件大生产的工业化时代。木文在面向对象程序设计的基础上,结合程序设计发展趋势中软件生产口动化中的产生式编程、模型驱动分析/设计(MDA/MDD),和软件重用中的设计模
2、式的思想,提出一种数据驱^(Data-Driven)设计模式,它借助数据交换工具以数据为模型,在产生器作用下,口动生成功能代码所需要的目标类,可以降低程序和数据库的耦合度,再结合其它设计模式,可以从很大程度上实现软件重用,适合解决数据库应用系统中大量和似界构数据表操作可维护性低,可重用性低,开发周期过长的问题。在作者项目实例中将采用XML为数据交换工具应用数据驱动设计模式,并将其和原型(Prototype)设计模式结合使用,以达到最大软件重用。最后木文还讨论现存23种经典设计模式中和木模式相似的两个模式——适配
3、器(Adapter)和桥接(Bridge)模式,并也将举出同一项目中两个小例了來说明这两个模式,用以讨论他们的和似和不同Z处,分别指出他们各口的适用范围。关键字:设计模式,产生式编程,MDA/MDD,Data-DrivenDesign,软件重用,XMLAbstractProgrammingautomation(alsocalledprogramproduction)andsoftwarereusearetwodirectionsontheimprovementofsoftwaredevelopmenttechn
4、iques.Plentyoftechniquesandtoolsareinventedinthesetwofields.Inprogrammingautomation,thereareGenerativeProgramming,IntentionProgramming,CharacterDrivenDevelopment,ModelDrivenAnalyse/ModelDrivenDevelopment(MDA/MDD),UML2.0•…Insoftwarereuse,thereuseabletechnique
5、sincludebutnotlimitedtolibraries,template,object-orientedtechniques,designpattern,componentandframeworks.Theyareallaimingatincreasingtheefficiencyofsoftwaredevelopment,andbringtotheindustrialisationageofsoftwareproduction.Basedontheobject-orientedprogramming
6、,thearticlecombinetheideaofGenerativeProgrammingandMDA/MDDinprogrammingproductionwithdesignpatternsinsoftwarereuseandputthemintopractice・AnewdesignpatternnamedData-Drivenisproposed.Usingdataasmodelsbythetoolsofdataexchanging,throughtheoperationofagenerator,i
7、tcanmaketheclasswhichthetargetcodeneededfromthedatamodelandminishthecouplingbetweentheprogramandthedatabase.Ifcombiningthisdesignpatternwithotherpatterns,itcanenhancethereusabilityobviously,especiallyindealingwiththeprobleminoperationonalargenumberofsimilarb
8、utnotthesamedatatables.Intheinstanceofthewriter^project,theData-DrivendesignpatternisputintopracticebyusingXMLasthetoolofdataexchanging.CombiningwiththePrototypedesignpattern,thesystemgetsthegre