La
programación orientada a objetos es un paradigma enfocado principalmente a la
reutilización del código y a facilitar su
mantenimiento. Esto se consigue mediante mecanismos de abstracción, como herencia y polimorfismo, y encapsulación.
Abstracción:La abstracción es el método mediante el que se aproxima una entidad real
enfatizando características y comportamientos
relevantes para el sistema e ignorando otros triviales, facilitando la modificación, construcción y comprensión de las entidades participantes.
Encapsulación: Incluye los conceptos de
agrupación y
ocultamiento.
La agrupacion
reúne toda la
información relativa al comportamiento y estructura de cada entidad. Esta independencia facilita la tarea de mantenimiento del sistema, permitiendo la modificación de cada módulo de forma
independiente.
La ocultación
esconde los
detalles de implementación exponiendo únicamente un interfaz que especifica las
posibles interacciones con las instancias de ese entidad. Proporciona capacidad de modificar la implementación de cada módulo,
independientemente de las relaciones con otros, sin cambiar el comportamiento del sistema.
Estas propiedades restringen la posibilidad de efectos secundarios, la propagación de cambios, facilitando el
mantenimiento y proporcionan un método seguro para la
reutilización de los módulos en otros sitemas.
Herencia:
Un sistema orientado a objetos se compone de multitud de instancias de entidades
colaborando entre sí. Esta colaboración se define mediante las
relaciones como asociación, agregación o herencia.
La
herencia es la relación entre entidades en que la entidad especializada se
apropia de la estructura y comportamiento de la entidad base. El comportamiento heredado
puede modificarse de modo que se adecúe a las características de la nueva entidad. Un posible uso de la herencia es la
especialización, donde la entidad especializada
añade comportamientos nuevos a los de la entidad base. Otro posible uso es la
sustitución de comportamientos, que oculta el un aspecto del comportamiento de la clase base en favor del de la especializada.
La herencia es otra forma de abstracción que fomenta la
reutilización de codigo.
Polimorfismo: Cuando varias entidades representan su propio comportamiento con el mismo símbolo, un
mismo mensaje puede aplicarse a cualquiera de esas entidades (habitualmente relacionadas mediante herencia), obteniendo así
diferentes comportamientos.
El polimorfismo está estrechamente relacionado con la ligadura dinámica y está enfocado a la
reutilización de código.