Abstraction inversion

Last updated

In computer programming, abstraction inversion is an anti-pattern arising when users of a construct need functions implemented within it but not exposed by its interface. The result is that the users re-implement the required functions in terms of the interface, which in its turn uses the internal implementation of the same functions. This may result in implementing lower-level features in terms of higher-level ones, thus the term 'abstraction inversion'.

Contents

Possible ill-effects are:

Examples

Alleged examples from professional programming circles include:

Examples that are common outside professional programming circles include:

See also

References

  1. Critique of DIN Kernel Lisp Definition Version 1.2, footnote 2 Archived 2018-05-06 at the Wayback Machine - says (without references) that the term derives from critiques of the Ada rendezvous, appears to be one of the earliest uses.
  2. lua-users c2: Floating Point Accessed 2009-10-12.
  3. Programming in Lua : 2.3 - Numbers Accessed 2009-10-12.
  4. lua-users c2: Bitwise Operators Accessed 2013-01-15.
  5. sourcefrog : Tom Lord on Subversion
  6. Title bar customization - Windows apps | Microsoft Learn