Los acercamientos tradicionales al diseo del software han sido datos orientados o de proceso orientados. las metodologas Dato-orientadas acentan la representacin de la informacin y de las relaciones entre las partes del conjunto. Las acciones que funcionan encendido los datos estn de menos significacin. Por otra parte, las metodologas de diseo proceso-orientadas acentan las acciones realizadas por un artefacto del software; los datos son de poca importancia. Ahora se sostiene comnmente que las metodologas orientadas al objeto son ms eficaces para manejar la complejidad que que se presenta en el diseo de los artefactos grandes y complejos del software que las metodologas dato-orientadas o proceso-orientadas. Esto es porque los datos y los procesos se dan importancia igual. Los objetos se utilizan para combinar datos con los procedimientos que funcionan encendido esos datos. La ventaja principal de usar objetos es que proporcionan la abstraccin y la encapsulacin.
Abstraccin Encapsulacin
Abstraccin.
La abstraccin se puede pensar como un mecanismo para suprimir los detalles inaplicables mientras que en el mismo tiempo que acenta los relevantes. Una ventaja importante de la abstraccin es que hace ms fcil para que el programador piense del problema que se solucionar. Por ejemplo, la abstraccin procesal deja a diseador del software pensar de las acciones que se realizarn sin la preocupacin de cmo se ponen en ejecucin esas acciones. Semejantemente, la abstraccin de los datos deja a diseador del software, pensar de los objetos en un programa y las interacciones entre esos objetos sin tener que preocuparse de cmo se ponen en ejecucin esos objetos. Hay tambin muchos diversos niveles de la abstraccin. Ms bajos son los niveles de la abstraccin exponen a ms de los detalles de una puesta en prctica mientras que los niveles ms altos ocultan a ms de los detalles.
Encapsulacin
La encapsulacin ayuda al diseador del software haciendo cumplir ocultar la informacin. Los objetos encapsulan datos y los procedimientos para manipular esos datos. En un sentido, el objeto oculta los detalles de la puesta en prctica del usuario de ese objeto. Hay dos ventajas muy verdaderas de la independencia conceptual y fsica de la encapsulacin. La independencia conceptual resulta de ocultar la puesta en prctica de un objeto del usuario de ese objeto. Por lo tanto, previenen al usuario de hacer cualquier cosa con un objeto que dependa de la puesta en prctica de ese objeto. Esto es deseable porque permite que la puesta en prctica sea cambiada sin requerir la modificacin del cdigo del usuario. La independencia fsica se presenta del hecho de que el comportamiento de un objeto es determinado por el objeto s mismo. El comportamiento de un objeto no es determinado por alguna entidad externa. Consecuentemente, cuando realizamos una operacin en un objeto, no hay efectos secundarios indeseados.
Containers , Envases Enumerations, Enumeraciones Visitors , Visitantes Cursors, Cursores Adapters, Adaptadores Esqueletos, Singletons.
Envases
Un envase es un objeto que lleva a cabo dentro de l otros objetos. Un envase tiene una capacidad, puede estar lleno o vacio, y los objetos se pueden insertar y retirar de un envase. Adems, un envase investigable (searchable container ) es un envase que apoya operaciones de bsqueda eficientes.
Enumeraciones
Una enumeracin proporciona los medios por los cuales los objetos dentro de un envase se pueden alcanzar uno-en-uno-tiempo. Todas las enumeraciones comparten un interfaz comn, y ocultan la puesta en prctica subyacente del envase del usuario de ese envase
Visitantes
Un visitante representa una operacin que se realizar en todos los objetos dentro de un
envase. Todos los visitantes comparten un interfaz comn, y de tal modo ocultan la operacin que se realizar del envase. En el mismo tiempo, definen a los visitantes por separado de los envases. As, un visitante particular puede ser utilizado con cualquier envase.
Cursores.
Un cursor representa la posicin de un objeto en un envase pedido. Provee del usuario una manera de especificar donde est ser realizada una operacin sin tener que saber se representa esa posicin.
Adaptadores.
Un adaptador convierte el interfaz de una clase en el interfaz esperado por el usuario de esa clase. Esto permite que una clase dada con un interfaz incompatible sea utilizada en una situacin donde un diverso interfaz espera.
Esqueletos. Singletons
Un esqueleto es una clase de la cual hay solamente un caso. La clase se asegura de que all solamente un caso est creado y proporciona una manera de tener acceso a ese caso.
Variables Tipos primitivos y tipos de la referencia Pasando Parametros Clases y objetos Herencia Interfaces y polimorfismo Otras Caractersticas
Variables.
Usted debe ser muy cmodo con la nocin de una variable como abstraccin para una regin de una memoria. Una variable tiene cualidades tales como nombre, tipo, valor, tamao de la direccin, curso de la vida, y alcance.
Pasando Parametros.
All mecanismos el un pasar de parmetro en Java: pasar-por-valor. Es esencial que usted entiende cmo el pasar-por-valor trabaja para los tipos primitivos y para los tipos de la referencia.
Clases y objetos.
Una clase de Java encapsula un sistema de valores y un sistema de operaciones. Los valores son representados por los campos de la clase y las operaciones por los mtodos de la clase. En Java una definicin de la clase introduce un nuevo tipo. Los casos de un tipo de la clase se llaman los objetos
Herencia.
En Java una clase se puede derivar de otra. La clase derivada hereda todos los campos y los mtodos de la clase o de las clases baja. Adems, los mtodos heredados se pueden eliminar en la clase derivada y los nuevos campos y funciones pueden ser definidos. Usted debe entender cmo el recopilador determina el cdigo para ejecutarse cuando se llama un mtodo particular.
Interfaces y polimorfismo.
Una interfaz de Java abarca un sistema de prototipos del mtodo. Diversas clases pueden poner la misma interfaz en ejecucin. De esta manera, polimorfismo de las instalaciones de Java la idea que una abstraccin dada puede tener muchas diversas formas. Usted debe entender cmo los interfaces se utilizan junto con clases abstractas y herencia para apoyar polimorfismo.
Otras Caractersticas.
Este libro hace uso otras caractersticas de Java tales como excepciones y tipo run-time informacin. Usted puede aprender sobre estos asuntos mientras que usted trabaja su manera a travs del libro.
Estructuras De Datos.
El captulo cubre apilados, coletas, y deques. Las listas pedidas y las listas clasificadas se presentan en captulo. El concepto del hashing se introduce en captulo. Este captulo tambin cubre el diseo de las funciones del picadillo para un nmero de diversos tipos del objeto. Finalmente, se presentan las tablas del picadillo y las tablas de la dispersin.
Los rboles y los rboles de la bsqueda se presentan en captulos y. Los rboles son una de las estructuras de datos no lineares ms importantes. El captulo tambin cubre los varios traversals del rbol, incluyendo profundidad-primer traversal traversal y breadth-first. El captulo presenta coletas de la prioridad y el captulo cubre sistemas, multijuego, y particiones. Un elemento esencial del sistema run-time de Java es la piscina del almacenaje dinmicamente asignado. El captulo presenta un nmero de diversos acercamientos para poner la coleccin de la basura en ejecucio'n, en el proceso que ilustra los costes reales asociados a la asignacin de almacenaje dinmica.
Algoritmos.
Los tres captulos pasados del libro se centran en algoritmos, ms bien que estructuras de datos. El captulo es una descripcin de varios patrones algortmicos. Introduciendo la nocin de un solver abstracto del problema, demostramos cuntos de los patrones son relacionados. El captulo utiliza un acercamiento similar para presentar varios algoritmos que clasifican. Es decir, introducimos la nocin de un compaginador abstracto y demostramos cmo los varios algoritmos que clasifican son relacionados. Finalmente, el captulo da a breve descripcin del tema de grficos algoritmos de un grfico. Este captulo trae juntas varias tcnicas algortmicas del captulo con la jerarqua de la clase discutida en los captulos anteriores.
determine el tiempo en marcha de un programa en funcin de sus entradas; determine la memoria total o mxima necesitada para los datos del programa; determine el tamao total del cdigo del programa; determnese si el programa computa correctamente el resultado deseado; determine la complejidad del programa -ejemplo., cmo es fcil es a leer, a entender, y a modificarse; y, determine la robustez del programa -ejemplo., se ocupa cmo bien de las entradas inesperadas o errneas?
En este texto, nos referimos sobre todo al tiempo en marcha. Tambin consideramos la memoria necesitada para ejecutar el programa. Hay muchos factores que afectan el tiempo en
marcha de un programa. Entre stos estn el algoritmo s mismo, los datos de entrada, y el sistema informtico usado para funcionar el programa. El funcionamiento de una computadora se determina cerca el hardware: procesador usado (tipo y velocidad), memoria disponible (cache y RAM), y disco disponible; el lenguaje de programacin en el cual se especifica el algoritmo; el lenguaje compilador/interprete utilizado; y el software de sistema operativo de la computadora.
Un anlisis detallado del funcionamiento de un programa que tome todos estos factores en cuenta es una empresa muy difcil y desperdiciadora de tiempo. Adems, tal anlisis no es probable tener significacin duradera. El paso rpido del cambio en las tecnologas subyacentes significa que los resultados de tales anlisis no son probables ser aplicables a la generacin siguiente del hardware y del software. Para superar este defecto, ideamos un modelo del comportamiento de una computadora con las metas de simplificar el anlisis mientras que todava producen resultados significativos. La seccin siguiente introduce la primera en una serie de tales modelos. Un modelo detallado de la computadora. Un modelo simplificado de la computadora. Ejercicios. Proyectos.