Вы находитесь на странице: 1из 3

Abstraccion

Definiciones
* Una abstraccion es una descripcion simplificada o especificacion de un sistema que enfatiza algunos
de los detalles o propiedades del mismo mientras suprime otros.
*Una abstraccion denota las caracteristicas esenciales de un objeto que lo distinguen de todos los
demas tipos de objeto, y proporciona asi fronteras conceptuales definidas con nitidez, desde la
perspectiva del observador.
* Una abstraccion se centra en la vision externa de un objeto, y , por tanto, sirve para separar el
comportamiento esencial de un objeto de su implantacion.
* Esta division comportamiento/implantacion es una barrera de abstraccion que se consigue aplicando
el principio de minimo compromiso, mediante el cual el interfaz de un objeto muestra su
comportamiento esencial, y nada mas.
* Una abstraccion captura el comportamiento completo de algun objeto, ni mas ni menos, y no ofrece
sorpresas o efectos laterales que lleguen mas alla del ambito de la abstraccion. A este principio se le
llama principio de minima sorpresa.
Ventajas
* La abstraccion es una de las vias fundamentales por la que los humanos combatimos la complejidad.
Problema
* La decision sobre el conjunto adecuado de abstracciones para determinado dominio es el problema
central del diseno orientado a objetos.
Tipos
* Abstraccion de entidades: Un objeto que representa un modelo util de una entidad del dominio del
problema o del dominio de la solucion.
* Abstraccion de acciones: Un objeto que proporciona un conjunto generalizado de operaciones, y
todas ellas desempenan funciones del mismo tipo.
* Abstraccion de maquinas virtuales: Un objeto que agrupa operaciones, todas ellas virtuales utilizadas
por algun nivel superior de control, u operaciones que utilizan todas algun conjunto de operaciones de
nivel inferior.
* Abstraccion de coincidencia: Un objeto que almacena un conjunto de operaciones que no tienen
relacion entre si.

Caracteristicas
* Se persigue construir abstracciones de entidades, porque imitan directamente el vocabulario de un
determinado dominio del problema.
Objeto
Un cliente es cualquier objeto que utiliza los recursos de otro objeto (denominado servidor).
Se puede caracterizar el comportamiento de un objeto considerando los servicios que presta a otros
objetos, asi como las operaciones que puede realizar sobre otros objetos.
Este punto de vista obliga a concentrarse en la vision exterior del objeto, a esto se le denomina el
modelo contractual de programacion, tambien llamado modelo de programacion de contratos.
La vista exterior de cada objeto define un contrato del que pueden depender otros objetos, y que a su
vez debe ser llevado a cabo por la vista interior del propio objeto (a menudo en colaboracion con otros
objetos).
Este contrato abarca las responsabilidades de un objeto, es decir, el comportamiento del que se le
considera responsible.
Al conjunto completo de operaciones que puede realizar un cliente sobre un objeto, junto con las
formas de invocacion u ordenes que admite, se le denomina su protocolo.
Un protocolo denota las formas en las que un objeto puede actuar y reaccionar, y de esta forma
constituye la vision externa completa, estatica y dinamica, de la abstraccion.
Invariante
Un invariante es una coondicion booleana (verdadera o falsa) cuyo valor de verdad debe mantenerse.
Para cualquier operacion asociada con un objeto, es necesario definir los siguientes dos conceptos.
Precondiciones: Inavariantes asumidos por la operacion.
Postcondiciones: Invariantes satisfechos por la operacion.
La violacion de un invariante rompe el contrato asociado con una abstraccion.
Si se viola una precondicion, esto significa que un cliente no ha satisfecho su parte del convenio, y por
tanto el servidor no puede proceder con fiabilidad.
Si se viola una postcondicion, significa que un servidor no ha llevado a cabo su parte del contrato, y
por tanto sus clientes ya no pueden seguir confiando en el comportamiento del servidor.
Una excepcion es una indicacion de que no se ha satisfecho (o no puede satisfacerse) algun invariante.

Propiedades
* Estaticas
* Dinamicas