Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

61
Informática III - 2008 Ing. EStela D'Agostino 1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS

Transcript of Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Page 1: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 1

PATRONES DE DISEÑO Y

ESTRUCTURAS DE DATOS

Page 2: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 2

Hardware Software

Poder reusar componentes y lograr un mantenimiento fácil.Lograr un software flexible

habitualmente

Patrones de diseño

Page 3: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 3

• Un buen diseño de software produce código que es reusable y escalable y la clave para que estas dos características estén presentes son:– Utilizar buenas abstracciones– Descomposición de los sistemas en

subsistemas más acotados.

Page 4: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 4

Problema Solución

La solución debe ser tal, que sirvacada vez que se presenta

el mismo problema

Page 5: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 5

Patrones de diseño

.

Ingeniero Resuelve problemasAplicando estándares

Las buenas soluciones permanecen, las malas se rechazan.Todo ingeniero debe conocer y saber aplicar los estándares conocidos

Page 6: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 6

• Se definen con un alto nivel de abstracción.

• Son independientes de los lenguajes de programación y de los detalles de implementación.

• Los patrones promueven y facilitan la reutilización de arquitecturas y diseños de software que han demostrado su validez en muchas aplicaciones.

Patrones de diseño

Page 7: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 7

• Erich Gamma, Richard Helm, John Vlissides y Ralph Johnson

• Design Patterns.

• 1994

Patrones de diseño

Page 8: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 8

• “Son descripciones de clases y objetos relacionados que están adaptados para resolver un problema de diseño general en un contexto determinado”.

Erich Gamma, Richard Helm, John Vlissides y Ralph Johnson

Patrones de diseño

Page 9: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 9

• Aplica la idea de patrones de diseño al diseño de software

• Describe una estructura dentro de la cual catalogar y describir patrones

• Cataloga 23 patrones

• Destaca estrategias y aproximaciones basadas en el diseño de patrones

Patrones de diseño

Page 10: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 10

• No crearon los patrones descriptos en el libro.

• Los descubrieron como existentes dentro de la comunidad del software

Patrones de diseño

Page 11: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 11

Porque estudiar patrones de diseño

• Reuso de soluciones de diseño.

• Establecer terminología común.

• Dan una perspectiva de alto nivel sobre el análisis y diseño.

Patrones de diseño

Page 12: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 12

Clases de patrones de software

• Patrones de arquitectura: proporciona un conjunto de subsistemas predefinidos, especifica responsabilidades y relaciones entre ellos.

• Patrones de programación: tiene que ver con las posibilidades de bajo nivel que tiene un lenguaje de programación determinado.

• Patrones de análisis: describen un conjunto de prácticas que aseguran la obtención de un buen modelo de un problema y su solución.

Page 13: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 13

• Patrón de diseño: proporciona un esquema para refinar los subsistemas o componentes de un sistema de software, o las relaciones entre ellos. Describe estructuras repetitivas de comunicación de componentes que resuelven un problema de diseño en un contexto particular

Clases de patrones de software

Page 14: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 14

Otros tipos de patrones

• Patrones de programación concurrente

• Patrones de interfaz gráfica

• Patrones de organización de código

• Patrones de optimización de código

• Patrones de robustez de código

• Patrones de fases de prueba

Page 15: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 15

Clasificación de patrones (GoF)

• Patrones de creación : Tratan de la inicialización y configuración de clases y objetos.

• Patrones estructurales: Tratan de desacoplar interfaz e implementación de clases y objetos:

• ¿Cómo se componen clases y objetos?

• Patrones de comportamiento: Tratan de las interacciones dinámicas entre sociedades de clases y objetos:

• ¿Cómo interaccionan y se distribuyen responsabilidades los objetos?

Page 16: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 16

Propósito

De creación Estructurales Comportamiento

Factory Method

Adapter Interpreter

Template Method

Abstract Factory

Adapter

Builder Bridge Chain of responsability

Prototype Composite Command

Singleton Decorator Mediator

Facade Memento

Flyweight Observer

Proxy State

Strategy

Visitor

Page 17: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 17

Patrón state

Page 18: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 18

• Programe para una interfaz, no para una implementación.

• Favorecer la composición frente a la herencia de clases.

• Encuentre lo que varía y encapsúlelo.

Principios básicos de los patrones de diseño

Page 19: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 19

• La clase de un objeto define el estado interno y la implementación del mismo.

• El tipo de un objeto sólo se refiere a su interfaz. Conjunto de operaciones a las cuales puede responder.

• Un objeto puede tener muchos tipos. • Objetos de clases diferente pueden tener

el mismo tipo.

Patrones de diseño

Page 20: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 20

Herencia de clases

Define la implementación

de un objeto en términos

de la implementación de

otros.

Patrones de diseño

Herencia de interfaces

Describe cuando se

puede usar un objeto

en lugar de otro.

No todos los lenguajes hacen esta distinción explícita

Page 21: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 21

Manipular objetos en función de la interfaz

definida por la clase abstracta, de la cual

extiende, tiene dos ventajas:

Patrones de diseño

Page 22: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 22

Los clientes no tienen que conocer los tipos específicos de los objetos que usan, basta con que estos cumplan con la interfaz que esperan los clientes.

Patrones de diseño

Page 23: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 23

Patrones de diseño

Herencia de clases

Ventajas•Se define estáticamente•Fácil modificación de la implementación

Desventajas•No se cambian implementaciones en tiempo de ejecución•Rompe encapsulamiento

Page 24: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 24

Composición de objetos

Patrones de diseño

Ventajas•Se define dinámicamente•No se rompe encapsulamiento

Page 25: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 25

Patrones de diseño

Que debería ser variable en su diseño

Que puede ser cambiado en su diseño, sin necesidad de rediseñar.Encapsule lo que puede variar.

•Distintos algoritmos de ordenación de arreglos

•Encapsule cada algoritmo en una clase

Page 26: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 26

Beneficios de los patrones• Los patrones favorecen la reutilización de diseños y

arquitecturas a gran escala.• Capturan el conocimiento de los expertos y lo hacen

accesible a toda la comunidad software.• Proporcionan un cuerpo de conocimiento utilizable

por toda la comunidad software.• Favorecen la transmisión de conocimiento entre

profesionales y entre clientes y desarrolladores• Proporcionan un lenguaje común. Los nombres de

los patrones forman parte del vocabulario técnico del ingeniero software.

Esto esta revirtiendose

Los lenguajes usan patrones para implementar estructuras de datos

Page 27: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 27

Problema de los patrones

• Los patrones, no llevan de forma directa a la reutilización del código, aunque dicha reutilización se facilita mediante su uso.

• La integración de los patrones en el proceso de desarrollo se hace todavía de forma manual.

• El número de patrones identificados es cada vez más grande. Las clasificaciones actuales no siempre sirven de guía para decidir cual usar.

Page 28: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 28

• El número de combinaciones patrones estilos y atributos que se dan en la práctica son incontables.

• Los patrones se validan por la experiencia y el debate, no mediante la aplicación de técnicas formales.

Problema de los patrones

Page 29: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 29

Cómo seleccionar un patrón de diseño

• Considerar cómo los patrones de diseño solucionan problemas de diseño.

• Buscar las intenciones de cada patrón.• Estudiar cómo se interrelacionan los patrones.• Estudiar patrones de propósito similar.• Examinar la causa de un rediseño.• Considerar que debería ser variable en un

diseño.

Page 30: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 30

Problema a resolver

Existe un archivo de texto, el que se debe leer en distintos momentos y bajo condiciones variables.

Como lo resuelvo?

Page 31: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 31

Problema a resolver

Leer solo las palabras que comiencen con t

Leer las palabras de más de 5 caracteres

Leer los palíndromos

Varia la estrategia de lectura

Encapsular

Page 32: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 32

Patrón Estrategia<interface> Strategy

checkStrategy (...)

EstrategiaAbstracta

checkStrategy (...)

Mayor5

checkStrategy (...)

Palindromo

checkStrategy (...)

ComenzarCon

checkStrategy (...)

Cliente

- CheckStrategy miestrategia

Encapsular

Programar para una interface

Page 33: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 33

Patrón Estrategia

• public interface Strategy { public boolean checkStrategy(String s); }

Page 34: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 34

Patrón Estrategia

• public class ComenzarConT extend EstrategiaAbstracta implements Strategy { public boolean checkStrategy(String s) { if( s == null || s.length() == 0) return false; return s.charAt(0) = 't'; } }

Page 35: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 35

Patrón Estrategia

• public class Mayor5 extend EstrategiaAbstracta implements Strategy { public boolean checkStrategy(String s) { if(s == null) return false; return s.length() > 5; } }

Page 36: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 36

Patrón Estrategia

• public class Palindrome extend EstrategiaAbstracta implements Strategy { public boolean checkStrategy(String s) { if(s == null) return false; int length = s.length(); if(length < 2) return true; int half = length/2; for(int i = 0; i < half; ++i) if(s.charAt(i) != s.charAt(length - 1 - i)) return false; return true; } }

Page 37: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 37

public void printWhen(String filename, Strategy which) throws IOException { BufferedReader infile = new BufferedReader(new FileReader(filename));

String buffer = null; while((buffer = infile.readLine()) != null) {

StringTokenizer words = new StringTokenizer(buffer);

while( words.hasMoreTokens() ) {

String word = words.nextToken(); if (which.checkStrategy(word)) System.out.println(word);

} } }

Page 38: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 38

Estructura de datos

•Una estructura de datos es un contenedor que almacena datos.

•Existen estructuras de datos estandarizadas y que pueden clasificarse según distintos criterios.

Page 39: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 39

Estructura de datos

• Extraer objetos de un contenedor no implica destruir el objeto.

• Un contenedor puede contener objetos por valor o por referencia.

objeto1 objeto2objeto3

objeto1 objeto2objeto3

referencia1 referencia2referencia3

Page 40: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 40

Clasificación de los contenedores

1. Ordenados

No ordenados

2. Con elementos repetidos

sin elementos repetidos

3. Secuencial (método de acceso)

Aleatorio

Page 41: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 41

Operaciones sobre el contenedor

•Creación

•Destrucción

Page 42: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 42

Servicios que brinda el contenedor•Inserción

•Extracción

•Búsqueda

•Iteración

•Cardinalidad

•Vaciado

•siguiente ( )(para contenedores ordenados)

•anterior ( )

Page 43: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 43

Estructura de datos

• Simples

• Estructurados • Estáticas

• Dinámicas

• Recorrido lineal

• Recorrido no lineal

Tamaño fijo

Tipos de datos fundamentales

Listas

Árboles Listas

enlazadas

Grupo de tipos de datos fundamentales o TDA

Tamaño variable

Page 44: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 44

Clases contenedoras

• Los objetos pueden almacenar datos, recuperar datos y remover datos.

Clase contenedora: cuyo estado cambia al remover o insertar objetos. Puede variar entre un estado vacío a uno no vacío

Objetos

Page 45: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 45

Estructura de datos implementadas por la mayoría de los lenguajes

•Dinámicos: varían el tamaño de la estructura de datos, el comportamiento para insertar y extraer elementos, por como se recorren y algunas características más según como se implementen en el lenguaje.

– Pilas: – Colas: – Listas enlazadas: – Conjuntos: – Árboles:

Page 46: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 46

Pilas

• Es una estructura que se conoce como de tipo LIFO (Last Input First Output).

• Se puede implementar de distintas formas.

• Habitualmente tiene, entre otros, dos métodos añadir(.....) y sacar (....).

Page 47: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 47

Pilas

Elemento 1 Elemento 2 Elemento n..................

Inserto elemento

s

Extrae elemento

s

Implementación estática

Elemento 1

Elemento 2

Elemento n

Elemento 3..................

Inserto elemento

s

Extrae elemento

s

Implementación dinámica

Cabecera

Page 48: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 48

Colas

• Es una estructura que se conoce como de tipo FIFO (First Input First Output).

• Se puede implementar de distintas formas.

• Habitualmente tiene, entre otros, dos métodos o procedimientos añadir(.....) y sacar (....).

Page 49: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 49

Listas enlazadas

• Es una estructura que acepta inserción o extracción de elementos en cualquier lugar, al principio, al final o en un lugar determinado. Pueden estar implementadas de forma estática o dinámica.

Page 50: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 50

ArbolesUn árbol es una estructura de datos no lineal y homogénea en el que cada elemento puede tener varios elementos posteriores, pero tan sólo puede tener un elemento anterior.

Árbol binario

Page 51: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 51

Patrones de comportamiento y estructuras de datos

Las clases contenedoras pueden cambiar su estado al insertar o remover objetos. Por lo tanto se pueden utilizar patrones de comportamiento para representar ese cambio de estado.

Page 52: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 52

Clase Lista implementada con patrones

EstadoNoVacío

insertar (Lista, Object, Object)

EstadoVacio

insertar (Lista, Object, Object)

EstadoAbs

insertar (Lista, Object, Object)

Lista

private EstadoAbs estado

Page 53: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 53

Recorrido de una estructura de datos

Patron iterator

AgregadoAbs

CrearIterador()

Agregado

CrearIterador()

Iterador

primero()

siguiente()

haTerminado()

elementoActual()

Iterador

Page 54: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 54

Framework Collections de Java

• Contiene interfaces, clases abstractas e implementaciones de clases concretas que me permiten manejar datos estructurados.

Page 55: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 55

Page 56: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 56

Framework Collections de Java

Interfaces

Page 57: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 57

Características de las interfaces

• Collections: metodos para agregar y extraer elementos.• Sets: no permite elementos duplicados.• SortedSet: permite elementos ordenados.• List: colección ordenada, sepueden agregar elementos en

lugares a elección.• Queue: trabaja como una estructura FIFO.• Map: mantiene claves pares clave-valor.• SortedMap: mantiene claves pares clave-valor, en un orden

especificado.

Page 58: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 58

Clases que implementan las interfaces

Page 59: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 59

Beneficios del framework de collecciones de java

• Reduce el esfuerzo de programación.

• Aumenta la calidad.

• Reduce el esfuerzo para diseñar nuevas APIs.

Page 60: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 60

Biblioteca estandar de patrones STL en C++

• Contenedores

• Adaptadores de contenedores

• Contenedores asociativos

• Iteradores

• Otros

Page 61: Informática III - 2008Ing. EStela D'Agostino1 PATRONES DE DISEÑO Y ESTRUCTURAS DE DATOS.

Informática III - 2008 Ing. EStela D'Agostino 61

• Vector<T>: arreglo de elementos de tipo T de tamaño variable.

• List>T>: lista doblemente enlazada.

• Dequeu<T>: es parecida a Vector<T>, pero inserta al principio fácilmente

• Stack<T>: es un adaptador que sirve para construir una pila de cualquiera de las 3 estruc anteriores.

• Queue<T>: esuna FIFO

• Priority_Queue: es un tipo de cola en la que los elementos están ordenados de forma que cada vez que extraemos un elemento de ella obtenemos el de mayor prioridad

Biblioteca estandar de patrones STL en C++