Difference between revisions of "Abstraction inversion"
From Wiki @ Karl Jones dot com
Karl Jones (Talk | contribs) (Created page with "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 [...") |
Karl Jones (Talk | contribs) (→See also) |
||
(One intermediate revision by the same user not shown) | |||
Line 13: | Line 13: | ||
== See also == | == See also == | ||
+ | * [[Abstraction (software engineering)]] | ||
* [[Anti-pattern]] | * [[Anti-pattern]] | ||
* [[Interface (computing)]] | * [[Interface (computing)]] | ||
Line 22: | Line 23: | ||
+ | |||
+ | [[Category:Anti-patterns]] | ||
[[Category:Computer programming]] | [[Category:Computer programming]] |
Latest revision as of 11:04, 29 November 2016
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'.
Description
Possible ill-effects are:
- The user of such a re-implemented function may seriously underestimate its running-costs.
- The user of the construct is forced to obscure his implementation with complex mechanical details.
- Many users attempt to solve the same problem, increasing the risk of error.
See also
External links
- Abstraction pattern @ Wikipedia