设计模式-入口(Gateway)

入口是一个封装外部系统或资源访问的对象

背景

即使是纯粹的面向对象系统,通常也要处理一些不是对象的事务,例如关系数据库、CICS事务和XML数据结构。


问题


一般通过API访问外部资源。对API的理解是开发过程的必经之路,不仅软件的可读性差,使软件修改变也变得困难。


解决途径


将所有API代码封装到一个类中,其他对象通过这个入口访问资源,入口对象将方法的调用转换成特定API。

运行机制

  • 入口的重要用途之一是它可以使用服务桩模式;
  • 入口在完成以下基本功能的前提下最小化:适配外部服务、提供一个设置服务桩的良好位置。
  • 代码自动生成入口。可以使用关系元数据创建一个关系表的包装器类,或采用XML模式生成入口代码。
  • 需要多个对象构造入口。一般使用两个对象:前端和后端,前端转化资源API为应用可用的操作,后端封装对资源操作的代码,但没有简化API。


使用时机

  • 如果必须通过一个复杂的接口访问外部资源,应该考虑入口模式。
  • 通过为服务桩部署提供一个清晰的位置,入口模式使系统更容易测试。
  • 如果有多个子系统,也可以采用映射器模式,但映射器模式比入口模式复杂。
  • 入口模式使客户方开发的,而其他模式,如外观模式则是服务方提供的。
  • 入口模式没有事先已存在的接口,而例如适配器模式则是对已有接口的修改完成。
  • 调停者模式通常用来对多个对象解耦,使其无需相互引用,入口模式通常只涉及到两个对象。
     

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值