Professional Documents
Culture Documents
La interfaz
La interfaz describe los servicios que se presentan al usuario final. La interfaz de una clase deber contener slo lo que el usuario requiere conocer. Un aspecto muy importante cuando se disea una clase es identificar a la audiencia, el usuario, de la clase.
4
La implementacin
Los detalles de la implementacin de los servicios de la interfaz estn ocultos al usuario y pueden cambiarse, siempre y cuando la interfaz permanezca igual. El usuario y la implementacin deben apegarse a la especificacin de la interfaz.
5
CuentaBancaria
depositar(double cantidad); retirar(double cantidad); getSaldo() : double;
Esta informacin ser parte del estado de cada objeto, y lo representamos en la clase como los atributos.
8
CuentaBancaria
-numeroDeCuenta : string; -saldo : double +depositar(double cantidad); +retirar(double cantidad); +getSaldo() : double;
Interfaces abstractas: Slo dicen qu hacer, de manera muy general. Interfaces concretas: Dicen de manera especfica cmo proceder.
11
Interfaz abstracta
Cul de los dos escenarios es ms reutilizable? Es preferible utilizar interfaces abstractas, pues permite que la implementacin sea diferente, de acuerdo a nuestras necesidades.
12
Proporcionar al usuario slo lo que absolutamente requieren. Inicie con una interfaz mnima y de manera iterativa agregue servicios slo si el usuario los requiere.
13
Las interfaces pblicas definen qu es lo que el usuario puede acceder. Es vital disear las clases desde una perspectiva del usuario y no desde un punto de vista del sistema de informacin. Cuando disee una clase asegrese de trabaja con base en los requerimientos y el diseo con ayuda de la gente que realmente la utilizar.
14
Despus de elegir las interfaces pblicas, debe identificarse la implementacin. Cmo debe realizarse el trabajo para cada operacin que es parte de la interfaz? Tcnicamente, lo que no es pblico es parte de la implementacin. La implementacin debe ser oculta para el usuario. Lo que es pblico es parte de la interfaz. As, la firma de un mtodo, que implementa una operacin de la interfaz, es pblica; sin embargo, el cdigo dentro de los mtodos pblicos realmente es parte de la implementacin, puesto que no est a la vista del usuario.
16
Tericamente, lo que sea considerado parte de la implementacin puede cambiar sin afectar cmo el usuario interacta con la clase. Mientras la interfaz representa cmo el usuario ve el objeto, la implementacin representa, de hecho, los detalles prcticos del objeto. La implementacin contiene el cdigo que representa ese estado de un objeto.
17