stringtranslate.com

Objeto de Dios

En la programación orientada a objetos , un objeto dios (a veces también llamado objeto omnisciente o que todo lo sabe ) es un objeto que hace referencia a una gran cantidad de tipos distintos, tiene demasiados métodos no relacionados o no categorizados, o alguna combinación de ambos. [1] El objeto dios es un ejemplo de un antipatrón y un olor a código . [2]

Características

Una técnica de programación común es dividir un problema grande en varios problemas más pequeños (una estrategia de divide y vencerás ) y crear soluciones para cada uno de ellos. Una vez que se resuelven los problemas más pequeños, se resuelve el problema grande en su totalidad. Por lo tanto, un objeto dado para un problema pequeño solo necesita saber sobre sí mismo. Del mismo modo, solo hay un conjunto de problemas que un objeto necesita resolver: sus propios problemas. Esto también sigue el principio de responsabilidad única .

Por el contrario, un programa que emplea un objeto dios no sigue este enfoque. La mayor parte de la funcionalidad general de un programa de este tipo está codificada en un único objeto "que todo lo sabe", que mantiene la mayor parte de la información sobre todo el programa y también proporciona la mayoría de los métodos para manipular estos datos. Debido a que este objeto contiene tantos datos y requiere tantos métodos, su papel en el programa se vuelve similar al de un dios (que todo lo sabe y todo lo abarca). En lugar de que los objetos del programa se comuniquen entre sí directamente, los demás objetos dentro del programa dependen del único objeto dios para la mayor parte de su información e interacción. Dado que este objeto está estrechamente acoplado a (hace referencia a) gran parte del resto del código, el mantenimiento se vuelve más difícil de lo que sería en un diseño de programación más dividido. Los cambios realizados en el objeto para el beneficio de una rutina pueden tener un efecto dominó en otras funciones no relacionadas.

Un objeto dios es el análogo orientado a objetos de no usar subrutinas en lenguajes de programación procedimental , o de usar demasiadas variables globales para almacenar información de estado .

Aunque la creación de un objeto divino suele considerarse una mala práctica de programación, esta técnica se utiliza ocasionalmente para entornos de programación estrictos (como los microcontroladores ), donde el aumento del rendimiento y la centralización del control son más importantes que la facilidad de mantenimiento y la elegancia de la programación.

Véase también

Referencias

  1. ^ Riel, Arthur J. (1996). "Capítulo 3: Topologías de aplicaciones orientadas a la acción frente a aplicaciones orientadas a objetos". Heurísticas de diseño orientadas a objetos . Boston, Massachusetts: Addison-Wesley. ISBN 0-201-63385-X3.2 : No cree clases ni objetos de dios en su sistema. Desconfíe mucho de las abstracciones cuyo nombre contenga Driver, Manager, System o Subsystem.
  2. ^ Contieri, Maximiliano (28 de noviembre de 2020). «Code Smell 14 — God Objects». Medium . Consultado el 6 de marzo de 2023 .

Enlaces externos