Subido por victor1996

Observación de ingeniería de software

Anuncio
Observación de ingeniería de software 10.1
El polimorfismo nos permite tratar con las generalidades y dejar que el entorno en tiempo de ejecución se encargue de
los detalles específicos. Podemos ordenar a los objetos que se comporten en formas apropiadas para ellos, sin
necesidad de conocer sus tipos específicos, siempre y cuando éstos pertenezcan a la misma jerarquía de herencia.
Observación de ingeniería de software 10.2
El polimorfismo promueve la extensibilidad, ya que el software que invoca el comportamiento polimórfico es
independiente de los tipos de los objetos a los cuales se envían los mensajes. Es posible incorporar en un sistema
nuevos tipos de objetos que puedan responder a las llamadas de los métodos existentes, sin necesidad de modificar el
sistema base. Sólo el código cliente que crea instancias de los nuevos objetos debe modificarse para dar cabida a los
nuevos tipos.
Tip para prevenir errores 10.1
Hemos dicho que no debe llamar a los métodos de instancia de una clase desde sus constructores (puede llamar a los
métodos static de la clase y hacer la llamada requerida a uno de los constructores de la superclase). Si sigue este
consejo, evitará el problema de llamar a los métodos sobrescritos de la clase, ya sea de manera directa o indirecta, lo
cual puede provocar errores en tiempo de ejecución.
10.8 Una explicación más detallada de los problemas con las llamadas a métodos desde los constructores No llame
desde los constructores a los métodos que puedan sobrescribirse. Al crear un objeto de una subclase, esto podría
provocar que se llamara un método sobrescrito antes de que se inicializara por completo el objeto de la subclase.
Recuerde que al construir el objeto de una subclase, su constructor llama primero a uno de los constructores de la
superclase directa. Si el constructor de la superclase llama a un método que pueda sobrescribirse, el constructor de la
superclase llamará a la versión de la subclase de ese método, antes de que el cuerpo del constructor de la subclase
tenga la oportunidad de ejecutarse. Esto podría provocar errores sutiles y difíciles de detectar si el método de la
subclase que se llamó depende de una inicialización que aún no se haya realizado en el cuerpo del constructor de la
subclase.
Es aceptable llamar a un método static desde un constructor. Por ejemplo, un constructor y un método establecer
realizan a menudo la misma validación para una variable de instancia específica. Si el código de validación es breve,
es aceptable duplicarlo en el constructor y el método establecer. Si se requiere una validación más extensa, defina un
método de validación static (por lo general un método ayudante private) y luego llámelo desde el constructor y el
método establecer. También es aceptable que un constructor llame a un método de instancia final, siempre y cuando el
método no llame de manera directa o indirecta un método de instancia que pueda sobrescribirse.
1 de 1
Descargar