stringtranslate.com

Poltergeist (programación informática)

En programación informática , un poltergeist (o carromato gitano ) es un objeto de corta duración, normalmente sin estado, que se utiliza para realizar la inicialización o para invocar métodos en otra clase más permanente. Se considera un antipatrón . La definición original es de Michael Akroyd en la Object World West Conference de 1996: [ cita requerida ]

Así como un carromato gitano o un poltergeist aparecen y desaparecen misteriosamente, también lo hace este objeto de corta duración. Como consecuencia, el código es más difícil de mantener y se desperdician recursos de forma innecesaria. La causa típica de este antipatrón es un diseño deficiente del objeto.

A menudo se puede identificar a un poltergeist por su nombre; a menudo se les llama "administrador_", "controlador_", "supervisor", "proceso_de_inicio", etc.

A veces, las clases poltergeist se crean porque el programador anticipó la necesidad de una arquitectura más compleja. Por ejemplo, un poltergeist surge si el mismo método actúa como cliente e invocador en un patrón de comando y el programador prevé separar las dos fases. Sin embargo, es posible que esta arquitectura más compleja nunca se materialice.

Los poltergeists no deben confundirse con objetos de larga duración que contienen estados de un patrón como modelo-vista-controlador , o patrones de separación de niveles como el patrón de delegado comercial .

Para eliminar un poltergeist, elimine la clase e inserte su funcionalidad en la clase invocada, posiblemente por herencia o como un mixin .

Se han propuesto métodos para detectar poltergeists en código para refactorización. [1]

Véase también

Referencias

  1. ^ Al-Rubaye, Samer Raad Azzawi; Selcuk, Yunus Emre (24–26 de noviembre de 2017). "Una investigación de los ciclos de código y el antipatrón Poltergeist". 2017 8.ª Conferencia Internacional IEEE sobre Ingeniería de Software y Ciencia de Servicios (ICSESS) . pp. 139–140. doi :10.1109/ICSESS.2017.8342882. ISBN 978-1-5386-0497-7.

Enlaces externos