抽象泄漏

“抽象泄漏”是软件开发时，本应隐藏实现细节的抽象化不可避免地暴露出底层细节与局限性。抽象泄露是棘手的问题，因为抽象化本来目的就是向用户隐藏不必要公开的细节。

历史

艾林·约耳·斯波尔斯基于2002年提出了抽象泄露。更早于1992年，Gregor Kiczales描述了不完善的抽象化的一些问题并提出一些解决办法。

对软件开发的影响

由于软件开发与运行环境越来越复杂，开发者必须依赖于各种抽象。使得开发者专注于高层次的领域相关的知识与技能，以提高工作效率。但是，抽象泄漏法则指出“可靠”软件的开发者必须了解抽象之下的底层细节。否则一旦出了任何问题，根本不会知道是怎么回事，也不知道如何除错或回复。程序设计工具抽象掉某些东西，但和其他所有抽象机制一样都有漏洞，而唯一能适当处理漏洞的方法，就是弄懂该抽象原理以及所隐藏的东西。所以抽象机制虽然节省了工作的时间，不过学习的时间是省不掉的。