Una revisión de código C++ reveló un patrón preocupante relacionado con los métodos getter y setter. El método getField, que se esperaba fuera un simple getter, inesperadamente llamaba a una función setGetField. Esta función setGetField utilizaba una bandera booleana para determinar si debía establecer o obtener un valor. Peor aún, el valor se almacenaba en una variable estática dentro de setGetField. La variable estática implicaba que el valor se compartía entre todas las instancias de la clase, creando efectivamente un singleton. La reacción inicial del revisor fue de incredulidad, sospechando una broma. Sin embargo, encontrarse con este patrón repetidamente generó frustración y dudas sobre la competencia de los desarrolladores y las prácticas de contratación. El uso repetido de este patrón defectuoso puso de manifiesto serias preocupaciones sobre la calidad de la base de código y la comprensión de los principios básicos de programación por parte de los desarrolladores. El problema se centra en la encapsulación inadecuada y las consecuencias no deseadas del uso de variables estáticas dentro de los métodos de la clase. El diseño del código dio como resultado un estado compartido entre todas las instancias, violando los principios fundamentales de la POO (Programación Orientada a Objetos).
getField, que se esperaba fuera un simple getter, inesperadamente llamaba a una funciónsetGetField. Esta funciónsetGetFieldutilizaba una bandera booleana para determinar si debía establecer o obtener un valor. Peor aún, el valor se almacenaba en una variable estática dentro desetGetField. La variable estática implicaba que el valor se compartía entre todas las instancias de la clase, creando efectivamente un singleton. La reacción inicial del revisor fue de incredulidad, sospechando una broma. Sin embargo, encontrarse con este patrón repetidamente generó frustración y dudas sobre la competencia de los desarrolladores y las prácticas de contratación. El uso repetido de este patrón defectuoso puso de manifiesto serias preocupaciones sobre la calidad de la base de código y la comprensión de los principios básicos de programación por parte de los desarrolladores. El problema se centra en la encapsulación inadecuada y las consecuencias no deseadas del uso de variables estáticas dentro de los métodos de la clase. El diseño del código dio como resultado un estado compartido entre todas las instancias, violando los principios fundamentales de la POO (Programación Orientada a Objetos).