Diseño de elementos software con tecnologías basadas en componentes. IFCT0609. José Carlos García Bermúdez

Чтение книги онлайн.

Читать онлайн книгу Diseño de elementos software con tecnologías basadas en componentes. IFCT0609 - José Carlos García Bermúdez страница 4

Diseño de elementos software con tecnologías basadas en componentes. IFCT0609 - José Carlos García Bermúdez

Скачать книгу

href="#fb3_img_img_c7fd845e-38a1-56cc-877c-2f27d5032e75.png" alt="iAct"/>

      Actividades

      1.¿Qué ventajas de la programación orientada a objetos considera más importantes?

      2.Además de los inconvenientes indicados, ¿ha identificado algún otro?

      Un concepto muy importante de la orientación a objetos es la ocultación de la información, que permite definir de qué forma son accesibles los atributos y métodos de una clase.

      De una forma básica, la ocultación consistiría en aislar la información (atributos) de forma que solo pueda ser modificada mediante las operaciones definidas para la clase (métodos).

      Con la ocultación, se consigue proteger la información, evitando que se haga un mal uso de ella. La información no podrá ser modificada directamente, ya que cualquier cambio se realizará a través de alguno de los métodos definidos para la clase. Estos métodos incluirán las comprobaciones necesarias para asegurar que la información se modifica de forma adecuada.

iDef

      Definición

      Array

      Permite contener elementos del mismo tipo en una zona de almacenamiento continuo.

iEje

      Ejemplo

      Una aplicación pretende registrar la nota media de cada uno de los 25 alumnos de un curso, para lo que define un array de 25 posiciones que pueda almacenar valores numéricos con decimales.

      Al utilizar un enfoque orientado a objetos, se define la clase “curso”, con el atributo “nota_media” que se corresponde con el array de notas. Habría dos opciones:

      ilst2destSi no se aplica el principio de ocultación, los objetos de la clase “curso” tendrán el atributo “nota_media” visible para el resto de objetos de la aplicación, por lo que cualquiera podrá modificarlo sin ningún tipo de control, indicando valores negativos o demasiado altos.

      ilst2destAl aplicar el principio de ocultación, se definirá el atributo “nota_media” como privado (de forma que no sea visible para el resto de objetos), y se crearán los métodos públicos “leer_nota” (que devuelve la nota media de un alumno) y “grabar_nota” (que registra la nota media de un alumno).

      Aplicando la ocultación, se consigue que la aplicación sea más robusta, ya que cualquier información que se quiera leer o escribir debe utilizar alguno de los métodos definidos, que contendrán las validaciones necesarias para evitar que se introduzcan valores erróneos (negativos o demasiado grandes) o que se muestren valores que aún no han sido informados (no inicializados o nulos).

      La ocultación da lugar a que en las clases puedan identificarse dos partes bien diferenciadas:

      ilst1Interfaz: se corresponde con la visión externa de una clase. Es el conjunto de miembros que son accesibles por los demás elementos del sistema.

      ilst1Implementación: se refiere a la parte oculta, que incluye los mecanismos que conducen al comportamiento deseado.

      Existen distintos niveles de ocultación, que definen el tipo de acceso que se permite a atributos y métodos:

      ilst1Público: permite que sea accesible desde cualquier clase y desde cualquier parte del programa.

      ilst1Privado: se permite acceder desde operaciones de la propia clase.

      ilst1Protegido: permite el acceso desde operaciones de la propia clase o de clases derivadas.

iDef

      Definición

      Clase derivada

      Concepto que está relacionado con el de herencia, donde parte de la funcionalidad ha sido definida en otra clase (clase base) y es reutilizada en la clase derivada (clase hija).

      Al definir la visibilidad de una clase, habrá que tener en cuenta:

      ilst1Los atributos de una clase deberían ser privados, para que solo sean modificados mediante métodos de la propia clase.

      ilst1Los métodos de la clase deberían ser públicos.

      ilst1Los métodos que definen las operaciones que ayudan a implementar parte de la funcionalidad deberían ser privados (si no se utilizan desde clases derivadas) o protegidos (si se utilizan desde clases derivadas).

iRec

      Recuerde

      Los objetos de una clase son cajas negras, ya que no es posible saber cómo llevan a cabo internamente las operaciones, basta con saber cómo utilizarlos.

      Al crear objetos de una clase, solo se conoce su interfaz, pero no su implementación; por tanto, un cambio en la implementación de una clase (si no se modifica su interfaz) es transparente para los programas que la utilizan.

iEje

      Ejemplo

      La clase “curso” utilizada en el ejemplo anterior podría tener el método “listar” para mostrar todas las notas ordenadas de mayor a menor.

      Este método funciona correctamente, pero se ha detectado que su ejecución es un poco lenta.

      Sería posible modificar la implementación de este método para aplicar algún otro algoritmo de ordenación más eficiente y, como no es necesario modificar su interfaz (nombre del método, parámetros y valor de retorno), este cambio no afectará a los objetos de la aplicación que lo utilicen.

iAct

      Actividades

      3.Amplíe información sobre los distintos niveles de ocultación, identificando si existe algún otro tipo menos utilizado.

Скачать книгу