WEB开发网
开发学院软件开发Java 演化架构和紧急设计: 演化架构 阅读

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

 2010-03-08 00:00:00 来源:WEB开发网   
核心提示: 较好的替代方案就是采用组合而不是继承,如图 3 所示:图 3. 通过组合来对您的域类解耦合在此版本中,演化架构和紧急设计: 演化架构(3),域类(黄色部分)包含了一个定义日程项目语义的界面,原始的 ScheduleItem 将实现这个界面,却不会因为成功而赢得信任,一些新上任的架构师试图对这些置

较好的替代方案就是采用组合而不是继承,如图 3 所示:

图 3. 通过组合来对您的域类解耦合

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

在此版本中,域类(黄色部分)包含了一个定义日程项目语义的界面。原始的 ScheduleItem 将实现这个界面,它还可以由 ScheduleItemForm 来实现,使得这两个类的语义总是保持一致。反过来,ScheduleItemForm 拥有 ScheduleItem 域对象的一个实例,ScheduleItemForm 的所有读值器和写值器传递到封装的 ScheduleItem 的底层读值器和写值器。这就允许您利用 Struts 的良好特性,同时摆脱该框架的束缚。

经验法则是:可以使框架对您有所了解,而您不可以对框架有所了解。只要您可以维持那种关系,您就能避免把自己的代码耦合到基础设施中去,这使您能够更轻易地改变架构和设计。有时可能要多花点功夫来完成这个任务,但是您可以拥有更好的灵活性。Struts 并不是唯一向您提供这种诱惑的框架。几乎所有的框架都包含将您限制在框架中的帮助工具。如果您在域类中导入来自某个框架或者厂商的数据包,那您以后就有得头疼了。

关于架构的考虑

除了架构的定义,典型的企业设置中还出现了各种广泛的问题。我将在这里介绍针对其中一些问题的敏捷架构解决方法。

架构的政治

当您被提升到架构师职位时,公司政治将是您所要遇到的众多难题之一。因为架构师 基本上是公司中最高的技术职位,您会成为 IT 部门内发生的所有决策的发言人(和辩护人),无论好坏。事实上,您还常常要因为失败受到责备,却不会因为成功而赢得信任。一些新上任的架构师试图对这些置之不理(当您在技术职位时这也许非常有效),但是在您的新职位这明显行不通。

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

Tags:演化 架构 紧急

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