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:演化 架构 紧急

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