C.)  Programación Orientada a Objetos: La programación orientada a objetos no es un concepto nuevo, sus inicios y  técnicas de programación se iniciaron a principios de los 70. Se puede definir  programación orientada a objetos (OOPS) como una técnica de programación que  utiliza objetos como bloque esencial de construcción. La OOPS, es un tipo de  programación más cercana al razonamiento humano. La OOPS surge como una solución  a la programación de grandes programas, y para solventar el mantenimiento de  dichas aplicaciones, ya que en la programación estructura el más mínimo cambio  supone la modificación de muchas funciones relacionadas, en cambio con la OOPS  solo es cuestión de añadir o modificar métodos de una clase o mejor, crear una  nueva clase a partir de otra (Herencia). Dos lenguajes destacan sobre el resto  para programar de esta forma, Smalltalk y C++.  
 Concepto  de Objeto:  Desde un punto de vista general un Objeto es una estructura de datos de mayor o  menor complejidad con las funciones que procesan estos datos. Dicho de otra  forma, sería Datos más un Código que procesa estos datos. A los datos se les  denomina miembros dato y a las funciones miembro o miembro funciones. Los datos  están ocultos y sólo se puede acceder a ellos mediante las funciones miembro.  
 Clases:  Las Clases son como plantillas o modelos que describen como se construyen  ciertos tipos de Objeto. Cada vez que se construye un Objeto de una Clase, se  crea una instancia de esa Clase("instance"). Una Clase es una colección de  Objetos similares y un Objeto es una instancia de una Clase. Se puede definir  una Clase como un modelo que se utiliza para describir uno o más Objetos del  mismo tipo.  
  Herencia:  Una característica muy importante de los Objetos y las Clases es la Herencia,  una propiedad que permite construir nuevos Objetos (Clases) a partir de unos ya  existentes. Esto permite crear "Sub-Clases" denominadas Clases Derivadas que  comparten las propiedades de la Clase de la cual derivan (Clase base). Las  Clases derivadas heredan código y datos de la clase base, asimismo incorporan su  propio código y datos especiales. Se puede decir que la herencia permite definir  nuevas Clases a partir de las Clases ya existentes.  
  Polimorfismo:  En un sentido literal, Polimorfismo significa la cualidad de tener más de una  forma. En el contexto de POO, el Polimorfismo se refiere al hecho de que una  simple operación puede tener diferente comportamiento en diferentes objetos. En  otras palabras, diferentes objetos reaccionan al mismo mensaje de modo  diferente. Los primeros lenguajes de POO fueron interpretados, de forma que el  Polimorfismo se contemplaba en tiempo de ejecución. Por ejemplo, en C++, al ser  un lenguaje compilado, el Polimorfismo se admite tanto en tiempo de ejecución  como en tiempo de compilación
 Decimos  entonces que:  
 El tema  de la Programación Orientada a Objetos (Object Oriented Programming O-O-P) sigue  siendo para el que escribe un territorio inquietante, interesante y en gran  medida desconocido, como parece ser también para la gran mayoría de los que  estamos en el campo de la programación. Sin tratar de excluir a aquellos que han  afrontado este desarrollo desde el punto de vista académico y formal (maestrías  y doctorados) el tema se antoja difícil para los no iniciados. Con este breve  artículo me dirigiré en particular a la gran base de programadores prácticos que  andamos en búsqueda de mejores herramientas de desarrollo de programas, que  faciliten el trabajo de nuestros usuarios y a la vez disminuyan la gran cantidad  de considerandos que aparecen al empeñarnos en un proyecto de cómputo.
 Como  muchos de ustedes, me topé con el concepto de O-O-P como parte de esa búsqueda y  al explorarlo apareció el gusanillo de la curiosidad. A lo largo de mi actividad  como programador, y cuando se dio la necesidad, no tuve ningún problema en  convertir mis habilidades de programación en FORTRAN de IBM 1130 al BASIC de la  PDP, pues sólo era cuestión de aprender la sintaxis del lenguaje, ya que las  estrategias de programación y los algoritmos eran iguales. Posteriormente, al  manejar el PASCAL se requirió un importante esfuerzo en entender la filosofía de  las estructuras, lo cual modificaba la manera de ver (conceptualizar) a los  datos y a las partes constitutivas de un programa.
  Posteriormente aparece el QuickBasic, que adopté inmediatamente por la  familiaridad con el BASIC (ley del menor esfuerzo). Ofrecía estructuras de datos  (tipos y registros complejos), además de estructuras de instrucciones en  procedimientos y módulos; editor "inteligente" que revisa la sintaxis y  ejecución de las instrucciones mientras se edita el programa, generación de  ejecutable una vez terminado (.EXE), existencia de bibliotecas externas y enlace  con módulos objeto generados en otro lenguaje. ¿Qué más podía yo pedir?
 Pero la  necesidad de estar en la ola de moda es más fuerte que el sentido común. Las  aplicaciones en Windows siempre han despertado la envidia de los programadores,  al hacer ver sus programas pálidos e insulsos por comparación. Solución:  programar en Windows.
  Originalmente programar en Windows representaba un largo y tedioso camino para  dominar las complejas herramientas de desarrollo. Sólo recientemente han  aparecido desarrolladores de aplicaciones para Windows que le permiten al  programador pintar sus ventanas y realizar los enlaces entre los objetos con  programación tradicional, evitando en gran medida involucrarse con los conceptos  complicados de los objetos. Sin embargo no dejaron de inquietarme algunos  conceptos marcados por O-O-P, según los cuales serán los pilares del futuro de  la programación de componentes y de objetos distribuidos en redes, en donde la  actual programación cliente/servidor pareciera por comparación el FORTRAN o el  COBOL de ahora.
 Pidiendo  perdón de antemano a los puristas de las definiciones y conceptos de O-O-P,  expondré el resultado de mis propias indagaciones sobre este campo, esperando  que al paciente lector y posible programador le resulte menos complicado que a  mí asimilar los elementos básicos de O-O-P.
 Los  principales conceptos que se manejan en la Programación Orientada a Objetos son:  1. encapsulado, 2. herencia y 3. Polimorfismo.
 Según  esto, la encapsulación es la creación de módulos autosuficientes que contienen  los datos y las funciones que manipulan dichos datos. Se aplica la idea de la  caja negra y un letrero de "prohibido mirar adentro". Los objetos se comunican  entre sí intercambiando mensajes. De esta manera, para armar aplicaciones se  utilizan los objetos cuyo funcionamiento está perfectamente definido a través de  los mensajes que es capaz de recibir o mandar. Todo lo que un objeto puede hacer  está representado por su interfase de mensajes. Para crear objetos, el  programador puede recurrir a diversos lenguajes como el C++, el Smalltalk, el  Visual Objects y otros. Si se desea solamente utilizar los objetos y enlazarlos  en una aplicación por medio de la programación tradicional se puede recurrir al  Visual Basic, al CA-Realizer, al Power Builder, etc.
 
No hay comentarios:
Publicar un comentario