2013-04-07 24 views
0

'Bob叔叔'Martin在'敏捷软件开发'pp318-9中提出了一个很好的论点:'接口属于客户端,而不是衍生品......客户端往往与他们控制的接口打包在一起。如何/何时将包装界面与客户打包?

在实践中,如何做到在静态类型语言的客户人封装接口?从单个界面的角度来看 - 一个好的面向对象接口有好几个实现 - 马丁的推荐是合理的。但是在包级别上,每台服务器通常有很多客户端,并且服务器依赖于它的客户端似乎会使依赖关系箭头指向错误的方向。事实上,稍后在“包装设计原理”中,马丁引入了一个格言 - “稳定方向依赖”,它直观地建议客户端 - >服务器。

回答

0

“Bob大叔”是正确的,但他的意见并不总是可行的。在建立一个商业第三方图书馆时,从所有未来的客户那里收集必要的界面显然不是一件好事。也就是说,设计接口以满足所有已知用例的方法仍然有效。从概念上说,接口属于客户端,而不是图书馆。

当直接接口与客户建立内部公用事业,包就像“Bob大叔”建议。