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'. Possible ill-effects are:
Attributes | Values |
---|
rdfs:label
| - Abstraction inversion (en)
- Inversión de abstracción (es)
- Inversione di astrazione (it)
- Инверсия абстракции (ru)
|
rdfs:comment
| - Con inversione di astrazione, in informatica, si inca il procedimento utilizzato per creare una astrazione. Ad esempio se il linguaggio di programmazione usato da un utente non supportasse nessun meccanismo di lock-crossthread e lo volessi implementare con una classe che usa una transazione su DB, starei creando una classe che dovrebbe esporre una funzionalità molto astratta (perché utilizzabile dovunque) con una implementazione pesante e particolarmente caratterizzata dal DBMS su cui gira. L'astrazione inversa è un esempio di anti-pattern. (it)
- Инве́рсия абстра́кции (англ. abstraction inversion) — ошибка проектирования программного модуля, когда в сложном модуле для пользователя закрыты некоторые простые, но необходимые функции. В результате пользователь модуля вынужден реализовывать простую функциональность на основе интерфейса модуля, иногда с использованием недокументированных возможностей и побочных эффектов, в то время когда она уже реализована внутри модуля. То есть, реализовывать более низкоуровневые функции на основе высокоуровневых, откуда и происходит термин «инверсия абстракции». (ru)
- 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'. Possible ill-effects are: (en)
- En computación, el antipatrón de diseño inversión de abstracción (en inglés abstraction inversion) ocurre cuando un programador construye una interfaz que no expone las funcionalidades requeridas por los usuarios, aunque estas sean efectivamente implementadas, obligando al usuario a implementarlas mediante un mecanismo complejo. No debe mal entenderse como: "una construcción simple que esconde una construcción muy complicada" - construcción que es deseable. (es)
|
dcterms:subject
| |
Wikipage page ID
| |
Wikipage revision ID
| |
Link from a Wikipage to another Wikipage
| |
Link from a Wikipage to an external page
| |
sameAs
| |
dbp:wikiPageUsesTemplate
| |
has abstract
| - 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'. 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 their implementation with complex mechanical details.
* Many users attempt to solve the same problem, increasing the risk of error. (en)
- En computación, el antipatrón de diseño inversión de abstracción (en inglés abstraction inversion) ocurre cuando un programador construye una interfaz que no expone las funcionalidades requeridas por los usuarios, aunque estas sean efectivamente implementadas, obligando al usuario a implementarlas mediante un mecanismo complejo. No debe mal entenderse como: "una construcción simple que esconde una construcción muy complicada" - construcción que es deseable. Por ejemplo, en el lenguaje de programación Ada se considera que las primitivas de sincronización están invertidas: se construyen exclusiones mutuas o mutex como sencilla aplicación de la noción de rendevouz que es en sí más compleja. Lo que sucede en este caso, es que los programadores de Ada, para implementar semáforos (mutex), deben utilizar las primitivas «rendevouz», las que son más complejas que los semáforos (los utilizan), produciendo de esta forma la inversión de abstracción . Otro ejemplo es el uso de transacciones en una base de datos, cuando lo que se desea hacer es garantizar exclusión entre varias instancias de un algoritmo en hilos de ejecución diferentes. (es)
- Con inversione di astrazione, in informatica, si inca il procedimento utilizzato per creare una astrazione. Ad esempio se il linguaggio di programmazione usato da un utente non supportasse nessun meccanismo di lock-crossthread e lo volessi implementare con una classe che usa una transazione su DB, starei creando una classe che dovrebbe esporre una funzionalità molto astratta (perché utilizzabile dovunque) con una implementazione pesante e particolarmente caratterizzata dal DBMS su cui gira. L'astrazione inversa è un esempio di anti-pattern. (it)
- Инве́рсия абстра́кции (англ. abstraction inversion) — ошибка проектирования программного модуля, когда в сложном модуле для пользователя закрыты некоторые простые, но необходимые функции. В результате пользователь модуля вынужден реализовывать простую функциональность на основе интерфейса модуля, иногда с использованием недокументированных возможностей и побочных эффектов, в то время когда она уже реализована внутри модуля. То есть, реализовывать более низкоуровневые функции на основе высокоуровневых, откуда и происходит термин «инверсия абстракции». (ru)
|
prov:wasDerivedFrom
| |
page length (characters) of wiki page
| |
foaf:isPrimaryTopicOf
| |
is Link from a Wikipage to another Wikipage
of | |
is foaf:primaryTopic
of | |