2007-03-12
模块的接口设计
关键字: ooAuthor: Anders小明
任何一个有一定规模系统,通常会把系统做一定分解降低分析设计开发的难度,模块划分是一个比较常见的方式。
而在模块的划分,及其分析设计的实践中,模块和模块的交互接口最为重要,通常我们认为这些接口应该通用稳定,然而如何设计每个模块对外提供的接口却是一个不易的问题。
实践中,极有可能出现两种状况:接口维护失控或者过严而死板(而影响开发)。接口失控是因为接口的维护太过随意,因为A模块的需要就轻易在B模块中添加一个接口(方法),导致该接口(方法)非独立性(基本上只给模块A的这个功能点使用),或者是接口的控制过严,导致或者工作效率不高,或者接口的易用性不好。
原因在于:接口是两个模块间的耦合,而发生的种种问题在于模块耦合太过紧密;同时实践中,把模块对外提供的接口,与模块需要实现的外部模块的接口混为一谈。
根据指导原则:为了降低耦合只有在中间加一层。一种可行的实践是:不轻易为模块设计对外提供的接口(方法),除非是通过重构得来的;模块对外提供两种类:一个是需要外部模块实现的接口(接口设计从本模块需要出发,当然每个接口尽管是为某个功能点服务,但也要注意其在模块内通用性),另一个是其它模块要求本模块实现的接口的实现类。
即:A模块拥有一些需要B模块实现的接口(A模块对B模块的要求),而B模块中也有要求A模块实现的接口,因而A有这些接口的实现类。
这种实践方式的好处在于:模块的接口就多了一层隔离降低了耦合,把接口的通用性和接口的适应性分离,又明确了模块的边界,使得接口在日后的优化和调整有了缓冲。
- 浏览: 65907 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
NEWS: Microsoft DSL Tool ...
这不就是Ruby,或者更确切的说,Groovy嘛
-- by halfmile -
从EAI到SOA
wwwtom 写道呵呵,前几天还看有人说 esb上架构SOA是有害的,今天就看见 ...
-- by richmond -
从EAI到SOA
呵呵,前几天还看有人说 esb上架构SOA是有害的,今天就看见有人跑出来说 “E ...
-- by wwwtom -
从EAI到SOA
现在的soa门槛太高 入门比较困难 要了解 soap wsdl 等乱七八糟的东东 ...
-- by xly_971223 -
从EAI到SOA
很多人还以为SOA只是概念炒作,其实,国内外大多数主流厂商都已经推出SOA概念的 ...
-- by JavaInActoin






评论排行榜