WEB开发网      濠电娀娼ч崐濠氬疾椤愶附鍋熸い鏍ㄧ〒闂勫嫰鏌﹀Ο渚Ц闁诲氦顕ч湁婵犲﹤楠告禍鍓х磼鏉堛劌绗氶柟宄版嚇閹晠宕归銈嗘濠电偞鍨堕幐鎾磻閹捐秮褰掓偐閻戞﹩妫勯梺鎼炲妼鐎涒晝绮嬪澶樻晝闁挎繂鏌婇敃鍌涚厵閻庢稒锚閻忥絾绻濇繝鍐ㄧ伌闁诡垰鍟村畷鐔碱敂閸♀晙绱樺┑鐐差嚟婵儳螞閸曨剚鍙忛柍鍝勬噹缁€澶嬬箾閹存繄锛嶆鐐灲閹綊宕惰濡插鏌涢妸銉ヮ劉缂佸倸绉归弫鎾绘晸閿燂拷 ---闂備焦瀵уú鈺呭箯閿燂拷
开发学院软件开发Java 演化架构和紧急设计: 演化架构 阅读

演化架构和紧急设计: 演化架构

 2010-03-08 00:00:00 来源:WEB开发网 闂備線娼уΛ鎾箯閿燂拷闂備礁鎲¢崹鐢垫崲閹扮増鍎嶆い鎺戝€甸崑鎾斥槈濞嗗秳娌紓鍌氱▌閹凤拷濠电姭鎷冮崨顓濈捕闂侀潧娲ゅú銊╁焵椤掍胶鈯曢柕鍥╁仧缁辩偤鏁撻敓锟�闂備線娼уΛ鎾箯閿燂拷  闂備胶枪缁绘鈻嶉弴銏犳瀬闁绘劖顐煎☉妯锋瀻闁归偊鍓涘▔姘舵⒑閸涘⿴娈旀繛灞傚妼閳绘捇骞嬪┑鎰濡炪倖姊婚崢褏鎲撮敓锟�
核心提示: Fowler 所定义的架构的推论是:您应该灵活地构造架构部分,以便能够更轻松地替换它们(如果真的需要的话),演化架构和紧急设计: 演化架构(2),但是如何才能确保这点呢?这里有个例子,许多框架都会试图诱导您使用其自身的类,如果以后您决定 ScheduleItem 也需要在一个 Swing 应用程

Fowler 所定义的架构的推论是:您应该灵活地构造架构部分,以便能够更轻松地替换它们(如果真的需要的话)。但是如何才能确保这点呢?这里有个例子。

许多框架都会试图诱导您使用其自身的类,而不是 JDK 或者一个开放标准机构(例如 OASIS)提供的更普遍的类。这就是耦合的 “毒贩模式”:如果您服从这些诱导,您就只能永远受制于框架。这些框架采取的普遍方法就是,如果您使用了它们的类,某方面就会变得异常简单。这方面的完美例子就来自于 Apache Struts Web 框架。

在您的应用程序中包含业务规则和其他非基础设施代码的类是域类:它们包含着您的问题领域相关的有趣信息。Sturts 中的一个好助手类就是 ActionForm 类。如果您从 ActionForm 继承了您的域对象, 您的应用程序就会变得更方便。您可以从参数完成自动表格填充、自动验证(Web 和服务器层),以及其他便利。您所要做的就只是把 Struts ActionForm 类作为子集,如图 2 所示:

图 2. 使用 Struts ActionForm 类

演化架构和紧急设计: 演化架构

在 图 2 中,标签为 Model 的盒子包含了您的域对象。它扩展了 Struts 的 ActionForm,使得这一结构此后难以改变。如果以后您决定 ScheduleItem 也需要在一个 Swing 应用程序中运行,那就很难办了。您只剩下两个难以接受的解决方案:将所有的 Struts 拖拽到 Swing 应用程序中(且不使用它)或者摆脱对 Struts 的依赖。

上一页  1 2 3 4 5 6 7  下一页

Tags:演化 架构 紧急

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接