jueves, 5 de febrero de 2015

En la entrada de hoy hablaremos sobre aiml, un pequeño modelo para almacenar conocimientos de inteligencia artificial en nuetros bots.



Aiml permite el almacenamiento de conocimientos en grupos de topics, para ubicarlos mediante patrones.
En éste documento hablaremos sobre el formato de un documento aiml (basados en xml) y todas sus características.

Descarga Aquí

Saludos!

miércoles, 4 de febrero de 2015

En la entrada de hoy hablaremos sobre el patrón creacional de diseño Prototype, en entradas anteriores podemos apreciar diferentes patrones, como Factory, ObjectPool, etc. puedes ver por supuesto la entrada introductoria al tema aquí, y puedes ver el listado de teoría donde hay una sección de patrones aquí.

El patrón prototype tiene como idea fundamental, la de crear objetos basandose en clonar objetos previamente creados, debe incluir en su abstracción la funcion clonadora, para que luego en cada caso particular se establezca las especificaciones de la clonación (esto es la funcion __clone).

Este patrón es de utilidad cuando se quiere separar la lógica de la creación de objetos de su futura implementación creando así una instancia inicial pasando por todo el proceso de la creación, para luego simplemente copiar esa instancia y manejarla sin pensar en como fué construida y no tener que pasar por dicho proceso de nuevo.

La instancia prototipo solo debe ser utilizada para ser clonada, y no debe ser utilizada con otro propósito, por evidentes razones.

dejo aquí un ejemplo de código de prototype en php:


un saludo para todos los lectores!

martes, 3 de febrero de 2015

Buenas tardes lectores, en esta entrada hablaremos sobre el patrón singleton, quizá sea uno de los patrones más conocidos al menos en lo que se refiere a php, en entradas anteriores hablamos sobre ObjectPool, sobre Factory, y hasta sobre Prototype, también pueden ver aquí la entrada inicial al tema. En particular también hay una entrada que referencia a Singleton pero como una queja al mal uso que le da la mayoría de la gente al menos en php.

La utilidad de singleton comienza cuando nosotros requerimos de una clase una única instancia y nada más que una, y que la creación de multiples instancias de una clase pueda traernos problemas ya que no fué diseñada para eso.

De modo que el patrón establece una forma de obtener una sola instancia de la clase en todo momento, y si se trata de obtener una nueva, Singleton devolverá la instancia que ya tenía.

Para tales efectos se construye un metodo constructor del objeto, éste tiene que ser estático, y también se crea una propiedad estática que almacenará la instancia para devolverla en futuras ocaciones, el constructor si se puede, debe ser transformado en privado (dependiendo del lenguaje), ya que no se debe permitir a la persona construir el objeto directamente, luego en el metodo estático de construcción del objeto creamos una instancia de la clase si es que no hay una guardada en la propiedad destinada para tal trabajo, y si la hay simplemente devolvemos la que ya teníamos almacenada.

Quien quiera obtener una instancia de esa clase debe llamar al constructor estático de singleton para que asegure que tendremos siempre la misma instancia.

Un ejemplo de singleton en php:


Ahora que vamos cerrando las entradas relacionadas con patrones creacionales, siempre hay que tener en cuenta si el patrón que aplicamos corresponde con la situación dada, ya que estos patrones si se los usa en cualquier situacion sin importar si aplican al problema o es un problema que no tiene relación, estaremos en algunos casos derrochando recursos, y en otros estaremos limitando la usabilidad de las clases. Siempre que apliques un patrón debes tener una razón.

Un saludo lectores y espero que les haya gustado esta entrada.
Subscribete al RSS Follow me on Twitter!