Patrón Singleton

El patrón Singleton forma parte de los patrones creacionales. Se trata de uno de los patrones más usados y conocidos por los desarrolladores, y también es uno de los patrones más controvertidos. El patrón Singleton se encarga de controlar que únicamente se crea una instancia de una clase en toda la aplicación mediante el uso de un único punto de acceso. La definición que se da en el libro “Design Patterns: Elements of Reusable Object-Oriented Software” es: “Garantiza que una clase sólo tenga una instancia y proporciona un punto de acceso global a ella.” El diagrama de definición del patrón…

Continuar

Introducción a los Patrones de Diseño

Historia de los Patrones de Diseño El término patrón fue utilizado por primera vez por el arquitecto Christopher Alexander en el libro “A Pattern Language: Towns, Buildings, Construction“, donde definió una serie de patrones arquitectónicos. Alexander define: “Un patrón describe un problema que ocurre a menudo, acompañado por un intento de solución para el problema.” Christopher Alexander, 1977 En 1987, Ward Cunningham y Kent Beck estaban trabajando con Smaltalk, diseñando interfaces de usuario. Para ello, decidieron utilizar alguna de las ideas de Alexander y desarrollaron un pequeño lenguaje de patrones que serviría de guía a los programadores de Smaltalk. A…

Continuar

Funciones en Scala, breve introducción

Una función es un conjunto de sentencias que realizan una tarea. Scala tiene tanto funciones como métodos. La mayoría de las veces no se hace distinción entre ellos, pero hay ocasiones en las que hay que tener en cuenta que no son lo mismo. Un método en Scala, como en Java, es parte de una clase. Tiene su nombre, su firma y opcionalmente anotaciones. Mientras que una función es un objecto completo, son instancias de las clases Function0, Function1, Function2,… (el número depende del número de parámetros de la función). Uno de los métodos que contienen estas clases es el método…

Continuar

¿Qué es Play 2 Framework?

Play! 2 es un framework para el desarrollo rápido de aplicaciones web con Java y Scala, está basado en el patrón MVC (Modelo, Vista, Controlador), agregando la filosofía de Convención sobre Configuración. Play! explota el modelo de desarrollo guiado por pruebas integrando tests unitarios con JUnit y pruebas de integración con Selenium. Algunas de sus características son: Poderoso Sistema de Builds Play! utiliza sbt como sistema de builds. Tiene una serie de scripts predefinidos que nos ayudan a comenzar con nuestra aplicación(play new, run o start), además de un fichero con script pre configurados que será suficiente para la mayor…

Continuar

Interfaces Funcionales en Java 8

En esta nueva versión de la JDK se han realizada varias modificaciones en los interfaces. En el anterior artículo explique los métodos default y static y en este artículo explicaré otra de las mejoras en los interfaces, los interfaces funcionales. La mayoría de los desarrolladores de Java hemos tenido que trabajar alguna vez con los interfaces Runnable, ActionListener, Comparator o Callable. Estos interfaces tienen en una característica en común, únicamente tienen un método abstracto. A este tipo de interfaces se les conoce como Single Abstract Method Interfaces o SAM Interfaces. La forma más común de utilizarlos es implementándolos mediante una…

Continuar

Java 8 ya se encuentra disponible

Hoy se ha lanzado la nueva versión de Java y ya esta disponible para descargar en la página oficial de Java. Algunas de las nuevas características incluidas son: Nuevas características del lenguaje: Lambda Expressions, quizá la característica más esperada de esta nueva versión. Permiten pasar métodos como argumento. Las expresiones lambda permiten instanciar interfaces con un sólo método (interfaces funcionales) de forma muy sencilla. La referencia a métodos simplifica la lectura de las expresiones lambda.

Continuar

Java 8 – Métodos Default y Static en Interfaces

La nueva versión de Java tiene previsto su lanzamiento para el 18 de Marzo, aunque ya se puede descargar una Beta Version. La característica más conocida de esta nueva versión son las lambdas. Pero tiene otras muchas novedades como un nuevo motor de Javascript, interfaces funcionales, operaciones con grandes cantidades de datos, eliminación del Permagen o la clase Time. Voy a intentar explicar todas estas características poco a poco, a lo largo de una serie de artículos. Hoy empezaré con un par de mejoras en los interfaces. Default Methods Cuando se crea un interfaz se declaran métodos abstractos y son…

Continuar

Mejora en el manejo de recursos con Java 7 – ARM

Java 7 añade nuevas características bastante interesantes como son mejoras en la JVM, posibilidad del uso de String en los switch, formatos binarios de números… Entre estas nuevas características se encuentra la sentencia try-with-resources o ARM (Automatic Resource Management). Hasta ahora el manejo de los recursos, como ficheros, sockets, streams o conexiones a base de datos, debía ser realizado por el los programador, con los posibles errores que ésto puede originar. Con esta nueva sentencia, la JVM es la encargada de manejar todos los recursos que sean declarados dentro de la sentencia try-with-resources. Antes de Java 7 Antes de Java…

Continuar

HTML5 – Elemento P

El elemento p es un viejo conocido de versiones anteriores de HTML, probablemente es uno de los elementos más comúnmente utilizados. Representa un párrafo, el cual consiste en un bloque de texto que esta separado por lineas en blanco. Muchos navegadores muestran los párrafos con una linea en blanco entre ellos. Del W3C obtenemos este simple ejemplo de utilización de un párrafo:

Continuar

Scala – Diferencia entre VAR y VAL

Scala permite crear variables mutables(se pueden leer y reescribir) e inmutables(sólo se pueden leer). La variables inmutables se comportan como constantes, únicamente pueden ser inicializadas una vez y su valor no se puede modificar, de manera que si se intenta asignarle un nuevo valor se produce un error de compilación. Estas variables se declaran con el modificador val.

Continuar