Lenguajes Orientados a Objetos
Los lenguajes de programación orientados a objetos
tratan a los programas como conjuntos de objetos que se ayudan entre ellos para
realizar acciones. Entendiendo como objeto al entidades que contienen datos.
Permitiendo que los programas sean más fáciles de escribir, mantener y
reutilizar.
Lenguajes orientados a objetos:
- ActionScript
- Ada
- C++
- C#
- VB.NET
- Visual FoxPro
- Clarion
- Delphi
- Harbour
- Eiffel
- Java
- JavaScript
- Lexico (en castellano)
- Objective-C
- Ocaml
- Oz
- Perl (soporta herencia múltiple)
- PHP (en su versión 5)
- Python
- Ruby
- Smalltalk
- Magik (SmallWorld)
Caracteristicas Asociadas a la Programación Orientada a Objetos
Abstracción:
Abstracción es el proceso de implementación de las características esenciales y eliminación de información innecesaria. La abstracción es una característica importante en la que el programador oculta los detalles irrelevantes que, a su vez, reducirán el tamaño del código y la complejidad del código. La abstracción hace que las cosas sean más generales, simples y abstractas.
Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos y cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción.
Encapsulamiento:
Es la cualidad de unificar los datos y la forma de manipularlos, de esta forma podemos ocultar el funcionamiento de una clase y exponer solo los datos que manipula (mediante propiedades), así como proveer de medios para poder manipular dichos datos (mediante métodos). De esta forma, solo exponemos al mundo exterior la información y la forma de manipularla, ocultando los detalles usados para manejar esos datos y, lo que es más importante, evitando que nadie manipule, de forma inapropiada, esta información.
Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.
Modularidad:
Es la propiedad que permite tener independencia entre las diferentes partes de un sistema. La modularidad consiste en dividir un programa en módulos o partes, que pueden ser compilados separadamente, pero que tienen conexiones con otros módulos.
Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que específica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.
Polimorfismo:
Es una característica que permite utilizar una interfaz para una clase general de acciones. La acción específica está determinada por la naturaleza exacta de la situación. En general, el polimorfismo significa "una interfaz, múltiples métodos". Esto significa que es posible diseñar una interfaz genérica para un grupo de actividades relacionadas. Esto ayuda a reducir la complejidad al permitir que se use la misma interfaz para especificar una clase de acción general. Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama asignación tardía o asignación dinámica.
Ocultamiento:
Esta característica, tiene que ver con la capacidad que tiene cada objeto de ocultar algunos métodos a otros objetos y mantener la privacidad de estos, permitiendo ver y obtener los resultados de estos, sólo a otros objetos que los requieran.
No hay comentarios.:
Publicar un comentario