Читать книгу Diseño de elementos software con tecnologías basadas en componentes. IFCT0609 - José Carlos García Bermúdez - Страница 14
4.El Tipo Abstracto de Datos (ADT). Encapsulado de datos
ОглавлениеCon los lenguajes de programación estructurados surgió el concepto de tipos de datos (también llamados tipos de datos primitivos), que definen el conjunto de valores que pueden ser almacenados. Los más comunes son: enteros, decimales, cadenas alfanuméricas, fechas, etc. Pero estos tipos de datos primitivos empezaron a ser insuficientes, ya que los desarrolladores tenían la necesidad de definir los suyos propios.
Los Tipos Abstractos de Datos, cuyo acrónimo es TAD (o ADT si se utiliza la nomenclatura inglesa), son tipos de datos que pueden ser definidos por el programador para agrupar características y comportamientos similares, por lo que aplican el principio de abstracción.
Definición
Abstracción
En informática, la abstracción consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan.
De la misma forma que se crean variables a partir de los tipos de datos primitivos, también pueden crearse variables a partir de los TAD definidos en el propio programa. Un TAD no define solo el conjunto de valores que puede almacenar, sino también las operaciones que pueden realizarse sobre ellos.
Importante
La abstracción es la base de la orientación a objetos, ya que permite la creación de un conjunto de clases para modelar el problema que se desea solventar.
El encapsulado de datos permite agrupar a un mismo nivel de abstracción todos los elementos que están relacionados con una misma entidad. De esta forma, se consigue aumentar la cohesión y robustez de los elementos que forman el sistema.
Ejemplo
La aplicación que se ha utilizado anteriormente como ejemplo para el registro de la nota media del alumnado podría haberse desarrollado siguiendo una estructura tradicional:
Definiendo un array para almacenar cada nota y variables independientes para registrar la máxima y la mínima.
Creando funciones para realizar operaciones con el array, ordenación, cálculo de la nota máxima, mínima, etc.
Pero con un enfoque orientado a objetos se realizaría un encapsulado de todos los elementos que estén relacionados, definiendo la clase “curso”, que agrupa tanto los datos como las operaciones que se realizan sobre esos datos.
El encapsulado de datos y la ocultación de información permiten reducir el número de errores que pueden producirse en una aplicación, ya que en un sistema orientado a objetos estos dependen unos de otros y, si uno de ellos falla, bastará con modificar su implementación y no será necesario modificar los demás objetos.
Sabía que...
Es habitual confundir el concepto de encapsulamiento con el de ocultación, ya que ambos son utilizados de manera conjunta.
Al encapsular los datos y las operaciones, también se debería realizar una ocultación de aquellos que deban ser protegidos del mundo exterior.
Actividades
4.Explique la diferencia que existe entre los tipos abstractos de datos y las variables y detalle qué tipo de relación tienen.
5.¿Qué elementos de la programación orientada a objetos serían los equivalentes a los tipos abstractos de datos y las variables?
Aplicación práctica
Se está iniciando el diseño de una aplicación para gestionar las facturas que se emiten a los clientes de una ferretería. En una primera reunión con los responsables de la empresa, se ha decido utilizar un enfoque orientado a objetos y que la próxima semana se plantee un borrador inicial de cómo podría ser la estructura de la aplicación.
SOLUCIÓN
Como se está en una etapa muy temprana del diseño, solo es posible identificar las clases más importantes y algunos de sus métodos y atributos más importantes. Cuando se tenga mayor detalle de la funcionalidad a implementar, se podrá completar el diseño de las clases.
En primer lugar, se deben abstraer los elementos que van a componer la aplicación, encapsulando sus datos y operaciones. De esta forma, se identificarán las clases que van a componer el sistema:
Cliente: contiene los datos de un cliente (NIF, nombre, dirección, teléfonos, datos fiscales, etc.) y las operaciones que se pueden realizar sobre esos datos (cambiar dirección, modificar teléfono, mostrar ficha, etc.).
Producto: agrupa la información de un producto (código, descripción, precio, tipo de IVA, stock en almacén, etc.) y sus operaciones (cambiar precio, cambiar stock, etc.).
Factura: como datos de la factura se tendrán el código, la fecha de emisión, el cliente y una lista de los productos que la componen. Las operaciones habituales serán la modificación del cliente, el cambio de la fecha y la asignación y eliminación de productos.