WEB开发网
开发学院软件开发Java 基于模式的体系结构设计与开发: 第 1 部分:使用设... 阅读

基于模式的体系结构设计与开发: 第 1 部分:使用设计模式

 2010-01-22 00:00:00 来源:WEB开发网   
核心提示: 在图 2 的方案中,系统直接将请求转换为中央订票系统能理解的格式,基于模式的体系结构设计与开发: 第 1 部分:使用设计模式(5),不过,此方法有多个缺点,图 3. 通过适配器通信清单 2 显示了与清单 1 所示相同的 TicketBooker 类,但这次是通过适配器与遗留系统连接,包括: 应用

在图 2 的方案中,系统直接将请求转换为中央订票系统能理解的格式。不过,此方法有多个缺点,包括:

应用程序对接口的依赖性非常大。由于转换逻辑硬编码在接口中,中央订票系统的接口的任何更改都将直接影响前端应用程序。影响可能在单个模块中,也可能分布在多个模块中。

要扩展系统来与任意新订票系统通信将非常困难。同样,更改的影响可能仅限于单个模块中,也可能分布在多个模块中。

这是处理与遗留系统通信的常见方法。解决此问题的更好方法是,通过引入组件充当应用程序接口和订票系统之间的转换器(如下所述)来将接口变更的影响局部化。

使用设计模式创建解决方案:“适配器”设计模式

此部分说明如何使用设计模式解决问题。图 3 显示了如何将“适配器”设计模式作为我们示例的转换中间层应用。


图 3. 通过适配器通信
基于模式的体系结构设计与开发: 第 1 部分:使用设计模式

清单 2 显示了与清单 1 所示相同的 TicketBooker 类,但这次是通过适配器与遗留系统连接。TicketBooker 类所需要知道的全部内容就是 IRSAdapter 接口。


清单 2. TicketBooker 使用适配器与遗留系统通信
public class TicketBooker { 
  public boolean bookTicket(Itinerary i) { 
    // Use the Adapter to communicate with the legacy system 
    IRSAdapter adapter = new IRSAdapter(); 
    adapter.bookTicket(i);     
    return true; 
  }   
} 

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

Tags:基于 模式 体系结构

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