Вы находитесь на странице: 1из 18

Elementos Abstraccin

Dr. Carlos Lora-Senz Esc. Informtica UNA Setiembre 2011

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

Mdulo: interfaz de contenido


Expresin

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

Tipo como parmetro


Generics

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

(MainClass.java) Ver Comparator y Comparable Ms sobre generics en JavaGenericsTutorial

Patrones
Esquemas

(recetas) que ocurren una y

otras vez Soluciona problema Eficazmente Recurrente y reutilizable Independiente de lenguaje

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

Вам также может понравиться