扩展接口设计模式(一)

扩展接口(Extension Interface):允许组件(一般是一些业务逻辑)导出多个接口,当开发人员扩展或者修改组件功能时,此模式能够有效的防止接口的膨胀和客户代码的破坏。

1.为什么使用扩展接口

   A.把组件分发或集成到应用之后,组件的需求会出现不可预期的变化,若不能合理并详细的处理此类问题,将会对客户机代码发生较大的修改。相信多数架构设计师或系统分析师都遇到这类问题,并对这类问题头痛不已。

   B.若新功能仅仅被少数应用使用,那么其他的应用程序必然招致不必要的时间和空间开销,以支持他们不需要的功能。

2.扩展接口应该达到的能力

   A.当组件接口不改变,对组件的实现修改应该不影响现有使用组件的客户端代码;

   B.当开发人员使用外部代码扩展组件时,不应该破坏原先组件的客户端代码;

   C.组件功能的改变或扩展应该是相对的,既不能修改原有组件的接口,又不能改变原来组件的内部逻辑;

   D.如果组件和使用组件的客户端代码分布在不同的网络节点,客户端使用组件代码应该使用同一接口远程访问或局部的访问组件。

3.解决方案

   通过“扩展接口”导出组件功能,每个语义相关的操作集对应一个接口,组件应该至少实现一个扩展接口,为组件增加新的功能或者修改组件功能,应该增加一个扩展接口并导出而不是修改现有的扩展接口。且客户端通过使用它的扩展接口而非它的实现来访问组件。因此客户机依赖于组件的不同角色,组件中的角色由一个独立的扩展接口来表示。

4.结构

   主要有以下4个部分构成:

   A.组件:聚合和实现各种类型的和服务相关的功能。常将功能根据不同的类型划分成不同的角色;

   B.扩展接口:对应于组件实现的每个角色均有一个扩展接口,扩展接口也隐式的规定了和客户机交互的规则;

   C.根接口:一种特殊的扩展接口,一般由:1)核心功能,一般定义客户机获取扩展接口及在各种不同扩展接口间导航的规则,任何扩展接口必须实现

      2).领域无关功能,如组件生命周期管理等;3)领域相关功能,和实际的业务逻辑相关联的功能模块;

   D.客户机,客户机只能通过和扩展接口通讯从而实现和组件的交互。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值