Академический Документы
Профессиональный Документы
Культура Документы
Objetivos
Abstraccin
Mdulos
(encapsulamiento, escondiendo informacin) Abstraccin y apoyo en Sistemas de Tipos (generics) Idiomas y Patrones Ejemplos patrones
Abstraccin
Representacin
de conceptos reales en objetos lenguaje Vocabulario: clase, objeto, mtodo, estatuto, identificador, expresin Tipos de Datos y Control Simular computacionalmente un dominio Interacciones, escenarios, caso de uso Modelar
Abstraccin en OOP
Representacin de lo esencial (eliminacin de detalle) Objeto: elemento del dominio Clase: define un tipo abstracto de objetos Encapsula memoria (datos internos, atributos) y funcionalidad (mtodos) Objeto tiene identidad y estado propios Los escenarios computacionales: objetos intercambiando mensajes
Ventajas
Enfoque de simulacin de la realidad Reduce la brecha conceptual Esconde detalles: el programador slo ve una interfaz (tipo) Ese es el nico acceso a los datos del objeto Caja-negra: acceso por interfaz sin ver implementacin Promueve independencia: objetos como componentes que prestan servicios
Elementos Centrales
Modularidad: organizacin lgica y coherente de la funcionalidad Clara separacin entre interfaz e implementacin Reuso: poder reutilizar/compartir funcionalidad: Refinamiento Herencia: refinamiento por extensin de clases/tipos existentes Polimorfismo: capacidad de operacin sobre distintos tipos
Tipos
Abstraccin
declarativa de propiedades de objetos y funcionalidad Concretos (dominios): enteros, reales, Abstractos: pilas, colas Requerimientos semnticos mnimos que debe cumplirse el modelo Una clase implica un tipo Forma de expresar un tipo
Mdulos
Agrupacin
coherente de tipos Declaracin de contenido disponible Poltica de visibilidad (pblica, privado) Relacin (dependencias) con otros mdulos Manipulacin para especializar o restringir
Mdulos
Definen espacios de nombres Definen tipos Contrato de funcionalidad Esconden detalles de diseo e implementacin packages o namespaces son insuficientes No tienen contrato Slo organizacin y dependencias
explcita de que debe contener una famila de paquetes Qu cosas ofrece en cules paquetes Es una forma de superpaquete Con interfaz Visibilidad ms controlada No ms pblico que lo necesario
Ventajas
Poder
declarar paquetes a ser privados Entidades que comprendan varios paquetes no relacionados jerrquicamente Facilitar deployment Enforzar compilacin verdaderamente separada
Tendencia
Mdulos
(Racket)Scheme Java JSR superpaquetes (inactivo) Otras formas ML, OCAML Ver Mdulos en OCAML Otros Modula-3, CLU Desarrollo tardo en OOP
Tipos y modularidad
Los
tipos son la arquitectura de los objetos Tipos similares modularmente unidos Hay patrones comunes de abstraccin Ejemplo: colecciones e iteradores Funcionalidad independiente del contenido de la coleccin El tipo T de la coleccin: parmetro del mdulo
Polimorfismo:
cdigo permite distintos tipos a ser procesados para distintos tipos Sobrecarga: una forma de polimorfismo Paramtrico: el tipo es un parmetro Por herencia: si un mtodo funciona con tipo A entonces funciona con tipo B si B hereda de A.
Ejemplo
java.util.Arrays
Patrones
Esquemas
Categoras
Arquitectura
(ejemplo cliente servidor) Diseo (ejemplo ObservableObservador) MVC: model-view-controller Idiomas (ejemplo map en programacin funcional)
Ejemplos
Jugador-Visor
(ver Observando.java) Ver Observer/Observable Modelo en Swing (ver TestFrame y SimpleListModel) Ms detalles en Tutorial Swing