Tres palabras que se usan como si fueran la misma cosa. Dos de ellas lo son, pero no la tercera.

Una clase es un plano. El concepto coche: lo que es, lo que puede hacer. Un coche puede moverse por una carretera. No puede volar. Eso está definido en el plano, antes de que exista ningún coche concreto. La clase no ocupa espacio en el mundo. Es pura descripción, pura posibilidad.

Un objeto es lo que sale de fábrica siguiendo ese plano. Este coche. Con su color, su matrícula, su kilometraje. Ya existe. Un todo terreno sigue siendo un coche, hereda todo lo que eso significa, pero se mueve de forma distinta en terrenos donde un turismo no llegaría. Mismo plano de origen, comportamiento propio.

Ahora, si pensamos en moldes de galletas: tienes un molde con forma de estrella. El molde es la clase. La galleta que haces con él es el objeto. Una instancia es solo otra forma de señalar esa galleta y recordar de dónde viene. La galleta en el plato y el molde en el cajón son la misma estrella: una existe, la otra explica por qué tiene esa forma. No es una etapa distinta ni una categoría diferente. Es la misma galleta, vista desde el molde en lugar del plato.

La distinción importa porque el lenguaje técnico suele confundirlas, y esa confusión oculta algo útil: un objeto es una cosa, una instancia es esa misma cosa en relación a su origen.

El origen importa. Pero en un programa los objetos no están quietos en un plato: se mueven, se comunican, se organizan. Cuando una flota de taxis recibe una solicitud, los objetos no se atropellan. Solo responde el que está disponible y más cerca. Cada taxi sabe lo que sabe sobre sí mismo. El sistema sabe lo que necesita saber sobre todos. Nadie tiene acceso a lo que no le corresponde.

Cada taxi gestiona su propia localización. No la expone directamente sino que la comunica cuando se le pregunta, a través del canal correcto. El sistema central no mete mano en el GPS de ningún vehículo. Pregunta, recibe respuesta, decide.

Si los datos fueran accesibles libremente entre objetos, cualquier taxi podría, accidental o intencionalmente, modificar la posición de otro. El taxi 7 aparece en dos sitios a la vez. El taxi 3 desaparece del mapa. El cliente espera en la calle mientras tres taxis calculan rutas hacia una ubicación que ya no existe.

No es un fallo de lógica empresarial. Es un fallo de arquitectura. El desorden no viene de que alguien haga algo malo sino de que el sistema permitía que ocurriera.

Eso es programación orientada a objetos. No es una descripción. Es una forma de repartir responsabilidades.

Deja tu comentario

This site uses Akismet to reduce spam. Learn how your comment data is processed.