更新时间:2022-08-25 17:03
“抽象泄漏”是软件开发时,本应隐藏实现细节的抽象化不可避免地暴露出底层细节与局限性。抽象泄露是棘手的问题,因为抽象化本来目的就是向用户隐藏不必要公开的细节。
艾林·约耳·斯波尔斯基于2002年提出了抽象泄露。更早于1992年,Gregor Kiczales描述了不完善的抽象化的一些问题并提出一些解决办法。
斯波尔斯基给出的抽象泄漏法则:
由于软件开发与运行环境越来越复杂,开发者必须依赖于各种抽象。使得开发者专注于高层次的领域相关的知识与技能,以提高工作效率。但是,抽象泄漏法则指出“可靠”软件的开发者必须了解抽象之下的底层细节。否则一旦出了任何问题,根本不会知道是怎么回事,也不知道如何除错或回复。程序设计工具抽象掉某些东西,但和其他所有抽象机制一样都有漏洞,而唯一能适当处理漏洞的方法,就是弄懂该抽象原理以及所隐藏的东西。所以抽象机制虽然节省了工作的时间,不过学习的时间是省不掉的。
例子