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

¿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

Inyección de dependencias. ¿Qué es y para qué sirve?

La inyección de dependencias (DI) es un patrón de diseño que deriva de un patrón más genérico llamado Inversión de Control. DI hace uso de la modularidad y la reutilización, las cuales siempre deberíamos tener en cuenta si nuestra aplicación va a estar dotada de mayor funcionalidad. Más adelante, veremos en que consiste la Inversión de Control, pero hoy vamos a centrarnos en la DI, visto además de una manera simplista, con un ejemplo sencillo.

Continuar

Introducción a TDD

Dentro del mundo de las metodologías ágiles tenemos varias especialidades. Una de ellas se denomina Extreme Programming, que engloba varias técnicas, siendo una de ellas Test Driven Development, TDD para los amigos. ¿En qué consiste TDD? Muy sencillo. Antes de programar una funcionalidad vamos a escribir un test unitario que pruebe esa funcionalidad que aún no está desarrollada. Recuerdo la primera vez que alguien me habló de TDD. Pensé que estaba totalmente loco. ¿Cómo voy a escribir un test sobre algo que aún no he desarrollado? ¿Cómo voy a probar algo que no existe? Ahora me doy cuenta de que…

Continuar

Cambiar texto de un TextView desde Activity

Aprovechando el proyecto creado en anteriores entregas, vamos a ver como podemos cambiar el texto de un TextView desde un Activity, esto nos vendrá bien para mostrar errores u otro tipo de mensajes sin tener que cambiar estar pasando de un Activity a otro. Para ver como hacerlo, cogeremos primero un Activity con un TextView cuyo texto hemos definido en el archivo res/values/strings.xml [xml] < ?xml version="1.0" encoding="utf-8"?> Hello MyFirstAndroidAppActivity! MyFirstAndroidApp Hasta Luego ! [/xml]

Continuar

Primer aplicativo con Android: “Hola Android”

Ya hemos visto como configurar nuestro equipo para empezar a trabajar con Android, hemos visto también un breve resumen de su arquitectura, así que subamos el siguiente escalón. Una vez que ya tenemos nuestro entorno adaptado para trabajar con Android, el SDK y las tools actualizados, así como el plugin del eclipse a punto, pasaremos a crear nuestro primer aplicativo en Android. Para ello, abriremos el eclipse e iremos a File>New>Other . Una vez aquí, seleccionaremos de la lista de posibilidades el tipo Android Project

Continuar

HTML5 – Etiqueta Address

El elemento address no es nuevo ya que viene desde la versión 3 de HTML. Según el W3C el elemento address se define como: “El significado real de address es ofrecer información de contacto del autor o los autores de la página, o de la sección principal de la página, en la que aparece. Esta información puede ser un nombre, una dirección electrónica, una dirección postal o un enlace a otra página con más información de contacto.” Por ejemplo, una pagina en la web del W3C puede incluir la siguiente información de contacto: [html] © copyleft Anónimo. Si desea conocer…

Continuar