Hay un cierto desacuerdo sobre exactamente que características de un método de programación o lenguaje le define como "orientado a objetos", pero hay un consenso general en que las características siguientes son las mas importantes (para mas información, seguir los enlaces respectivos):
- Abstracción:
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 como se implementa 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:
Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesion de los compo
- Principio de ocultación:
Cada objeto esta aislado del exterior, es un modulo material, y cada tipo de objeto expone un interfaz a otros objetos que especifican como pueden interactuar con los objetos de la clase. El aislamiento mentes del sistema.
Algunos autores confunden este concepto con el principio de ocultación principalmente porque se suelen emplear conjuntamente.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 objetos secundarios e interacciones inesperadas. Algunos leguajes 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 de entera se reduce a un agregado o rompecabezas de objetos.
- Polimorfismo:
Comportamiento diferentes asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlo por ese nombre se utilizara el comportamiento correspondiente al objeto que se este usando. O dicho de otro modo, la referencia 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 ultima característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios mas estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.
- Herencia:
La clases no están aisladas, si no que se relacionan entre si formando una a jerarquía de clasificación, Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el en capsula miento permitiendo a los objetos ser definidos y creados como tipos especializados preexistentes. Estos pueden compartir "y extender" su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupado los objetos en clases y estas en arboles o en rejados que reflejan un comportamiento común. Cuando un objeto hereda de mas de una clase se dice que hay herencia multiple.
No hay comentarios.:
Publicar un comentario