不是抽象的漏洞,而是本质复杂性
原则6.4 不仅关注接口,同样要关注实现。
说明:这个原则看似和“面向接口”编程思想相悖,但是实现往往会影响接口,函数所能实现的功能,除了和调用者传递的参数相关,往往还受制于其他隐含约束,如:物理内存的限制,网络状况,具体看“抽象漏洞原则”。
http://local.joelonsoftware.com/mediawiki/index.php?title=Chinese_%28Simplified%29&oldid=9699
摘:
抽象能帮你解决大多数情况,提高你的工作效率,但是剩下的一公里问题,仍然需要你花费更多时间和精力去了解并解决。
这并非抽象的无力,你肯定不会反对“针对接口编程”这条原则,而是抽象本身解决不了本质复杂性,这里的本质复杂性就是链表的实现方法,随机访问与添加移除的平衡问题。在我们无法找到更好的链表实现方法来平衡随机访问与添加移除之前,这个本质复杂性就不是抽象能够解决的。
http://www.blogjava.net/killme2008/archive/2013/10/30/308942.html
抽象能帮你解决大多数情况,提高你的工作效率,但是剩下的一公里问题,仍然需要你花费更多时间和精力去了解并解决。