Las Clases y los Objetos son los conceptos más importantes que hay que entender en la programación orientada a objetos. El paradigma orientado a objetos se basa en la abstracción del mundo real para dar solución a los problemas con aplicaciones software.
Imagine que se desea controlar el arranque y nivel de velocidad de diversos autos de carrera. Estos autos de carrera pueden existir en diversos ambientes: reales o virtuales. Si fuera un ambiente real, en donde existieran físicamente los autos, entonces se podría diseñar e implementar una aplicación software para controlar los dispositivos de arranque y velocidad de cada auto. De lo contrario, si fuera un ambiente virtual, en donde no existieran físicamente los autos, se podría diseñar e implementar una aplicación software para simular el arranque y velocidad de cada auto.
Por tanto, en base al paradigma orientado a objetos podemos diseñar e implementar la aplicación software abstrayendo del mundo real o del contexto de problema las cosas o conceptos necesarios o relevantes que sirvan para solucionar el problema. En consecuencia, las cosas o conceptos abstraídos del mundo real van a representar las Clases principales de la aplicación software. Entonces, del caso que se desea controlar el arranque y nivel de velocidad de diversos autos de carrera, la cosa o concepto abstraído más relevante resulta ser la Clase Auto y además tiene atributos o propiedades como la cantidad de combustible y el nivel de velocidad que van a servir para controlar su movimiento a través de diferentes funciones u operaciones que puede realizar como arrancar, acelerar y frenar. Así, la Clase Auto encapsula sus atributos y operaciones que lo caracterizan y va a representar a cualquier auto que se necesite controlar desde la aplicación software. Por otra parte, los Objetos autos son instancias creadas a partir de la Clase Auto, es decir, cada Objeto auto instanciado va a conservar los mismos atributos definidos en la Clase Auto pero con valores propios que definen su estado. Por ejemplo, puede existir un Objeto auto1 donde el estado o valor de su atributo velocidad sea 0, es decir el auto1 está detenido y otro Objeto auto2 donde el estado o valor de su atributo velocidad sea 50, es decir el auto2 está en movimiento. Tanto el auto1 como el auto2 son Objetos de la Clase Auto (también se puede decir que auto1 y auto2 son del tipo Auto) y por tanto podrán realizar las mismas operaciones de arrancar, acelerar y frenar.
Existen también otros tipos de Clases que no se abstraen tan naturalmente del mundo real o contexto de problema. Estas Clases se crean por propia iniciativa del diseñador o programador orientado a objetos para poder completar la aplicación software, a esta técnica se le conoce como fabricación pura y es considerado un patrón de diseño básico. Entonces, como parte de la fabricación pura en el caso de los autos, es necesario también crear una Clase adicional llamada ControladorDeAutos. Esta nueva Clase permitirá controlar la carrera de un Objeto auto, es decir, solicitará al Objeto auto que arranque, que acelere y finalmente que se detenga.
En conclusión, una aplicación software desarrollado en base al paradigma orientado a objetos es un programa diseñado principalmente por un conjunto de Clases abstraídas del mundo real (conocidas como clases del dominio) y por otro conjunto de Clases de fabricación pura, en donde todas ellas se encuentran relacionadas y se colaboran.
Estos conceptos fueron extraídos del libro texto "Introducción a la programación orientada a objetos con Java" del cual soy autor.
Comentarios
Publicar un comentario
Gracias por tus comentarios