<?xml version="1.0"?>
<rss version="2.0">
   <channel>
      <title>Patrones de diseño de comportamiento by CARLOS EDUARDO RINCÓN GARCÍA</title>
      <link>https://padlet.com/g2346014/5q56hb94lp868bb4</link>
      <description>Se detallan las definiciones de los patrones de diseño</description>
      <language>en-us</language>
      <pubDate>2024-09-17 16:24:59 UTC</pubDate>
      <lastBuildDate>2024-09-19 18:09:44 UTC</lastBuildDate>
      <webMaster>hello@padlet.com</webMaster>
      <image>
         <url>https://steamuserimages-a.akamaihd.net/ugc/974361625902773862/FD92348CA456F8C1C1739CBC9B6C119E46702C8A/?imw=5000&amp;imh=5000&amp;ima=fit&amp;impolicy=Letterbox&amp;imcolor=%23000000&amp;letterbox=false</url>
      </image>
      <item>
         <title>1. Definición</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3124482814</link>
         <description><![CDATA[<p>El <strong><mark>cambio de responsabilidad</mark></strong> implica la <strong><em>transferencia </em></strong>de <strong><em>tareas específicas</em></strong> de un componente a otro, lo que permite que cada clase o módulo del sistema cumpla con una <strong><em>única responsabilidad</em></strong>, mejorando la modularidad y la mantenibilidad del software. [1]</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 00:01:59 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3124482814</guid>
      </item>
      <item>
         <title>Ejemplo:</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3124517886</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2132701342/52a68edea04d5f853f0fdf18b453dfbf/image.png" />
         <pubDate>2024-09-18 00:32:19 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3124517886</guid>
      </item>
      <item>
         <title>Referencias</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3124529224</link>
         <description><![CDATA[<p>[1] Martin, R. C. (2000). <em>Design principles and design patterns</em>. Object Mentor. <a rel="noopener noreferrer nofollow" href="https://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf">https://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf</a></p><p>[2] </p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 00:40:15 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3124529224</guid>
      </item>
      <item>
         <title>2. Relación con los Principios SOLID</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3124537464</link>
         <description><![CDATA[<p>Está profundamente vinculado con los siguientes principios SOLID:</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 00:47:13 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3124537464</guid>
      </item>
      <item>
         <title>¿Que es?</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3125724389</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 14:24:09 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3125724389</guid>
      </item>
      <item>
         <title>Principio de responsabilidad única (SRP) </title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126175547</link>
         <description><![CDATA[<ul><li><p>A través este, las clases mantienen una única responsabilidad, evitando la sobrecarga y favoreciendo la claridad del código.</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2132701342/6a32ca9e6a0d396b2eeccdb0fa58c2b0/image.png" />
         <pubDate>2024-09-18 18:48:19 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126175547</guid>
      </item>
      <item>
         <title>Principio Abierto/Cerrado (OCP)</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126176298</link>
         <description><![CDATA[<ul><li><p>También promueve el OCP, permitiendo que las clases sean extendibles sin modificar su comportamiento interno.</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2132701342/4e5ccf017dfb4a899117e659c914cd33/image.png" />
         <pubDate>2024-09-18 18:48:57 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126176298</guid>
      </item>
      <item>
         <title>¿Qué es?</title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126183886</link>
         <description><![CDATA[<p>El patrón <strong>Strategy</strong> es una forma de organizar el código para que podamos elegir entre diferentes maneras de hacer algo, sin tener que cambiar toda la estructura del programa. Es como tener una caja de herramientas con diferentes llaves: todas hacen algo similar (apretar tornillos), pero se usan en situaciones diferentes [1].</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 18:54:38 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126183886</guid>
      </item>
      <item>
         <title>Ejemplo</title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126184221</link>
         <description><![CDATA[<p>Imagina que tienes tres maneras de ir al parque:</p><ul><li><p><strong>Caminando.</strong></p></li><li><p><strong>En bicicleta.</strong></p></li><li><p><strong>En autobús.</strong></p></li></ul><p>Aunque las tres opciones te llevan al mismo lugar, cada una lo hace de forma diferente. Esto es como el patrón Strategy: diferentes estrategias para hacer lo mismo (llegar al parque), pero cada una se guarda en su propio lugar (clase) y se puede cambiar fácilmente.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 18:54:54 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126184221</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126184918</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2759881524/c654484a08442b00b67ac885d389f1d1/image.png" />
         <pubDate>2024-09-18 18:55:29 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126184918</guid>
      </item>
      <item>
         <title>¿Cómo Funciona el Patrón Strategy?</title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126185669</link>
         <description><![CDATA[<ul><li><p><strong>Contexto:</strong> Es la parte que decide qué estrategia utilizar (¿Caminar, bicicleta o autobús?).</p></li><li><p><strong>Estrategias:</strong> Cada una de las maneras de hacer algo. Por ejemplo, caminar sería una estrategia, y montar en bicicleta sería otra.</p></li><li><p><strong>Cliente:</strong> Es quien decide cuál estrategia usar. Por ejemplo, dependiendo del tiempo que tengas o de si hay autobuses, eliges una estrategia para ir al parque.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 18:56:07 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126185669</guid>
      </item>
      <item>
         <title>Puntos a favor:</title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126186344</link>
         <description><![CDATA[<p><br></p><ul><li><p><strong>Cambio fácil de comportamiento</strong></p></li></ul><ul><li><p><strong>Código más limpio y organizado</strong></p></li></ul><ul><li><p><strong>Fácil de agregar nuevas estrategias</strong></p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 18:56:39 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126186344</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126187410</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2759881524/eb65c1bb0339064b0a3dab57ce72a879/image.png" />
         <pubDate>2024-09-18 18:57:30 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126187410</guid>
      </item>
      <item>
         <title>¿Qué es?</title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126188169</link>
         <description><![CDATA[<p>El <strong>Template Method</strong> es un patrón de diseño de comportamiento que permite definir los pasos de un algoritmo en una clase base, dejando que las clases derivadas modifiquen ciertos pasos sin cambiar la estructura general [1].</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 18:58:07 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126188169</guid>
      </item>
      <item>
         <title>Ejemplo</title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126188576</link>
         <description><![CDATA[<p>Imagina que estás haciendo un sándwich. Sabes que siempre necesitas hacer ciertos pasos como poner el pan, los ingredientes, y cerrar el sándwich. Pero, tal vez quieres cambiar los ingredientes, o el tipo de pan. El <strong>Template Method </strong>te permite seguir el "esqueleto" de cómo hacer un sándwich, pero puedes elegir tus propios ingredientes.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 18:58:21 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126188576</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126188755</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2759881524/a85543f529541338f5def242c7b83034/image.png" />
         <pubDate>2024-09-18 18:58:30 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126188755</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126189249</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2759881524/0aba25df5ac91a13f5e7afc1bf29f9b2/image.png" />
         <pubDate>2024-09-18 18:58:54 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126189249</guid>
      </item>
      <item>
         <title>Puntos a favor</title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126189692</link>
         <description><![CDATA[<ul><li><p>Reutilización</p></li></ul><ul><li><p>Flexibilidad</p></li></ul><p><br/></p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 18:59:16 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126189692</guid>
      </item>
      <item>
         <title>¿Cómo funciona el Patrón Template method?</title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126194390</link>
         <description><![CDATA[<ul><li><p>Clase Base: Define el proceso general con un método que sigue varios pasos.</p></li><li><p>Métodos Fijos y Personalizables: Algunos pasos ya están definidos, mientras que otros se dejan como vacíos o abstractos para que las subclases los definan.</p></li><li><p>Subclases: Las subclases modifican solo los pasos necesarios sin cambiar el proceso completo.</p></li><li><p>Estructura Inmutable: El proceso general no cambia, solo los detalles.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 19:02:28 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126194390</guid>
      </item>
      <item>
         <title>Referencias</title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126197596</link>
         <description><![CDATA[<p>[1] FOP Olga Skobeleva, «Strategy», <em>Refactoring</em>. Disponible en: <a rel="noopener noreferrer nofollow" href="https://refactoring.guru/es/design-patterns/strategy">https://refactoring.guru/es/design-patterns/strategy</a></p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 19:05:12 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126197596</guid>
      </item>
      <item>
         <title>Referencias</title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126198274</link>
         <description><![CDATA[<p>[1] FOP Olga Skobeleva, «Themplate Method», <em>Refactoring</em>. Disponible en: <a rel="noopener noreferrer nofollow" href="https://refactoring.guru/es/design-patterns/template-method">https://refactoring.guru/es/design-patterns/template-method</a></p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 19:05:49 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126198274</guid>
      </item>
      <item>
         <title>¿Qué es?</title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126217273</link>
         <description><![CDATA[<p>El patrón Visitor es un patrón de diseño de comportamiento que permite separar algoritmos (o comportamientos) de los objetos sobre los que operan. Esto significa que puedes añadir nuevas operaciones a una estructura de objetos sin modificar las clases de esos objetos [1].</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 19:20:12 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126217273</guid>
      </item>
      <item>
         <title>Ejemplo</title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126217798</link>
         <description><![CDATA[<p>Imagina un agente de seguros que visita diferentes tipos de edificios y ofrece seguros específicos según el tipo de edificio. El agente (Visitor) sabe qué ofrecer basándose en el tipo de edificio (Element).</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 19:20:26 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126217798</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126217887</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2759881524/2ebe4733856d3551b511d48618abdb12/image.png" />
         <pubDate>2024-09-18 19:20:34 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126217887</guid>
      </item>
      <item>
         <title>¿Cómo funciona?</title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126218896</link>
         <description><![CDATA[<ul><li><p>Visitor (Visitante): Define qué hacer con cada tipo de objeto.</p></li><li><p>Element (Elemento): Los objetos aceptan al visitante y permiten que haga su trabajo.</p></li><li><p>ConcreteVisitor (Visitante Concreto): Implementa las operaciones específicas para cada tipo de objeto.</p></li></ul><p><br/></p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 19:21:15 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126218896</guid>
      </item>
      <item>
         <title>Referencias</title>
         <author></author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126227246</link>
         <description><![CDATA[<p>[1] FOP Olga Skobeleva, «Visitor», <em>Refactoring</em>. Disponible en: <a rel="noopener noreferrer nofollow" href="https://refactoring.guru/es/design-patterns/visitor">https://refactoring.guru/es/design-patterns/visitor</a></p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 19:27:03 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126227246</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126346028</link>
         <description><![CDATA[<ul><li><p><strong><mark>Patrón de Delegación</mark></strong></p><p>Consiste en que un objeto delega la responsabilidad de ejecutar una operación a otro objeto. Es esencial para implementar la separación de responsabilidades, ya que permite que un objeto principal gestione tareas sin tener que ejecutarlas por sí mismo.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 21:22:42 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126346028</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126354565</link>
         <description><![CDATA[<ul><li><p><strong><mark>Patrón Cadena de Responsabilidad</mark></strong></p><p>Permite que una solicitud pase a través de una cadena de manejadores. Cada manejador tiene la oportunidad de procesar la solicitud o pasarla al siguiente en la cadena. Es útil cuando se necesita delegar la responsabilidad del manejo de una tarea a múltiples objetos.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 21:34:41 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126354565</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126354846</link>
         <description><![CDATA[<ul><li><p><strong><mark>Patrón Estrategia</mark></strong></p><p>Permite que un objeto cambie su comportamiento en tiempo de ejecución, delegando la responsabilidad de un algoritmo específico a una clase concreta de estrategia.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 21:35:00 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126354846</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126354862</link>
         <description><![CDATA[<ul><li><p><strong><mark>Patrón Comando</mark></strong></p><p>Encapsula una solicitud como un objeto, permitiendo la delegación del procesamiento de esa solicitud a diferentes manejadores o receptores.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 21:35:01 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126354862</guid>
      </item>
      <item>
         <title>3. Patrones de diseño que aplican el cambio de responsabilidad:</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126356514</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-18 21:37:14 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126356514</guid>
      </item>
      <item>
         <title>4. Beneficios del cambio de responsabilidad</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126991519</link>
         <description><![CDATA[<p>Tiene varios beneficios importantes:</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 04:42:37 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126991519</guid>
      </item>
      <item>
         <title>Modularidad y mantenibilidad</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126994067</link>
         <description><![CDATA[<p>Al distribuir las responsabilidades adecuadamente, se obtiene un sistema modular donde las clases tienen <strong>funciones específicas</strong>, lo que facilita la mantenibilidad del código.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 04:44:09 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126994067</guid>
      </item>
      <item>
         <title>Reutilización de Código</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126995021</link>
         <description><![CDATA[<p>Las clases especializadas permiten que partes del código se puedan <strong>reutilizar</strong> en <strong>otros contextos</strong>, promoviendo la eficiencia en el desarrollo.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 04:44:42 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126995021</guid>
      </item>
      <item>
         <title>Flexibilidad y Escalabilidad</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126995567</link>
         <description><![CDATA[<p>Permite que el sistema sea más flexible, ya que los cambios pueden implementarse sin afectar otros componentes.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 04:45:04 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3126995567</guid>
      </item>
      <item>
         <title>5. Ejemplo práctico</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127000683</link>
         <description><![CDATA[<p><strong><mark>Java: Implementación del Patrón Estrategia</mark></strong></p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 04:48:05 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127000683</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127003016</link>
         <description><![CDATA[<p>El patrón estrategia se implementa creando una interfaz común para los algoritmos (estrategias) y permitiendo que la clase principal delegue el comportamiento a diferentes implementaciones de la estrategia. Esto facilita la extensión del comportamiento sin modificar el código existente.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 04:49:18 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127003016</guid>
      </item>
      <item>
         <title>6. Casos de uso</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127023672</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:00:51 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127023672</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127024742</link>
         <description><![CDATA[<ul><li><p><strong><mark>Aplicaciones de escritorio</mark></strong></p><p>En aplicaciones con interfaces gráficas, el patrón comando es comúnmente utilizado para <strong>delegar </strong>la responsabilidad de las <strong>interacciones </strong>del usuario a <strong>diferentes componentes</strong>, facilitando la organización del código y la implementación de nuevas funcionalidades.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:01:26 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127024742</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127026069</link>
         <description><![CDATA[<ul><li><p><strong><mark>Aplicaciones web</mark></strong></p><p>En frameworks como <strong>Spring</strong> para Java, el patrón de estrategia se utiliza para delegar la lógica de negocio a diferentes servicios, manteniendo la separación de preocupaciones y mejorando la modularidad.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:02:13 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127026069</guid>
      </item>
      <item>
         <title>7. Retos potenciales</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127049004</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:13:27 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127049004</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127050850</link>
         <description><![CDATA[<p>Aunque el cambio de responsabilidad tiene muchas ventajas, también puede aumentar la complejidad del sistema si no se maneja adecuadamente. En sistemas muy grandes, el exceso de delegación puede generar dependencias circulares o dificultar la depuración del código.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:14:07 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127050850</guid>
      </item>
      <item>
         <title>8. Patrones Relacionados</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127052254</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:14:40 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127052254</guid>
      </item>
      <item>
         <title>Patrón mediador</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127054238</link>
         <description><![CDATA[<p>Este patrón permite centralizar la comunicación entre diferentes objetos, reduciendo la complejidad y evitando dependencias directas entre ellos. El cambio de responsabilidad aquí es evidente, ya que se transfiere la lógica de comunicación a una clase mediadora.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:15:33 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127054238</guid>
      </item>
      <item>
         <title></title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127055872</link>
         <description><![CDATA[<p>El patrón de diseño <strong>Iterator</strong> permite recorrer secuencialmente los elementos de una colección sin exponer su representación interna. Facilita la implementación de colecciones iterables y la separación entre las estructuras de datos y los algoritmos que operan sobre ellas [1].</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:16:13 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127055872</guid>
      </item>
      <item>
         <title>9. Implementación en frameworks y tecnologías modernas</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127056022</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:16:18 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127056022</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127056826</link>
         <description><![CDATA[<p>Frameworks como <strong>Spring</strong> en Java y <strong>Django</strong> en Python implementan el cambio de responsabilidad mediante la inyección de dependencias, lo que permite una gestión eficiente de los servicios y la lógica de negocio. Esto facilita la reutilización de componentes y la modificación de funcionalidades sin afectar el sistema general</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:16:43 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127056826</guid>
      </item>
      <item>
         <title>Referencias</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127058684</link>
         <description><![CDATA[<p>[3] G. Gamma, R. Helm, R. Johnson, and J. Vlissides, <em>Design Patterns: Elements of Reusable Object-Oriented Software</em>, Addison-Wesley, 1994, pp. 305-313.</p>]]></description>
         <enclosure url="https://refactoring.guru/design-patterns" />
         <pubDate>2024-09-19 05:17:34 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127058684</guid>
      </item>
      <item>
         <title></title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127060394</link>
         <description><![CDATA[<p>Las colecciones son uno de los tipos de datos más utilizados en programación. No obstante, una colección es sólo un contenedor para un grupo de objetos.</p><p><br></p><p>La mayoría de las colecciones almacenan sus elementos en listas simples. Sin embargo, algunos de ellos se basan en pilas, árboles, gráficos y otras estructuras de datos complejas.</p><p>Pero no importa cómo esté estructurada una colección, debe proporcionar alguna forma de acceder a sus elementos para que otro código pueda utilizarlos. Debería haber una manera de revisar cada elemento de la colección sin acceder a los mismos elementos una y otra vez.</p><p>Esto puede parecer un trabajo fácil si tiene una colección basada en una lista. Simplemente recorre todo los elementos. Pero, ¿cómo se atraviesan secuencial-mente elementos de una estructura de datos compleja, como un árbol? Por ejemplo un día podría estar bien con el recorrido de un árbol en profundidad. Sin embargo, al día siguiente es posible que necesite un recorrido en amplitud. Y la próxima semana, es posible que necesites algo mas, como acceso aleatorio a los elementos del árbol. </p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:18:25 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127060394</guid>
      </item>
      <item>
         <title></title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127062472</link>
         <description><![CDATA[<p>La idea principal del patrón iterador es extraer el comportamiento transversal de una colección en un objeto separado llamado iterador. </p><p><br></p><p>Además de implementar el algoritmo en sí, un objeto iterador encapsula todos los detalles de recorrido, como la posición actual y cuántos elementos quedan hasta el final. Debido a esto, varios iteradores pueden recorrer la misma colección al mismo tiempo, independientemente unos de otros.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:19:21 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127062472</guid>
      </item>
      <item>
         <title></title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127069492</link>
         <description><![CDATA[<p>Imagina que tienes dos cajas de libros. Una de ellas está organizada de manera secuencial, con los libros ordenados por tema o autor, mientras que la otra está llena de libros colocados de forma completamente aleatoria. Si quieres encontrar un libro específico, o simplemente recorrer todos los libros de la caja, en la primera caja (organizada), sería sencillo pasar de un libro al siguiente en un orden lógico. En la caja desorganizada, necesitarías algún mecanismo para moverte entre los libros, porque no hay un orden establecido.</p><p>Aquí es donde entra el patrón Iterator: sin importar cómo estén organizados los libros (la estructura interna de la colección), el Iterator te permite recorrer cada libro de manera uniforme, asegurándose de que puedas acceder a cada uno sin preocuparte de cómo están almacenados.</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2125349153/e19b3e64f90ade092cdbd7df829cc9ff/image.png" />
         <pubDate>2024-09-19 05:22:44 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127069492</guid>
      </item>
      <item>
         <title>Código (Typescript) </title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127070738</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:23:23 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127070738</guid>
      </item>
      <item>
         <title>Ejemplo:</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127086496</link>
         <description><![CDATA[<p>Imagina que en una oficina, el gerente de un proyecto tiene varias responsabilidades, como preparar informes, coordinar reuniones y gestionar presupuestos. Sin embargo, en lugar de hacer todo por sí mismo, el gerente delegará estas tareas a diferentes miembros de su equipo, quienes tienen habilidades especializadas para llevarlas a cabo.</p><ul><li><p><strong>Gerente:</strong> Actúa como el "controlador" que tiene el objetivo general.</p></li><li><p><strong>Especialista en informes:</strong> Se encarga de la redacción y presentación de los informes.</p></li><li><p><strong>Coordinador de reuniones:</strong> Organiza y coordina las reuniones necesarias.</p></li><li><p><strong>Encargado de finanzas:</strong> Gestiona y revisa los presupuestos del proyecto.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:32:11 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127086496</guid>
      </item>
      <item>
         <title>Roles de ejemplo de código</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127091602</link>
         <description><![CDATA[<ul><li><p><strong>Iterator (Interfaz Iterator)</strong>: Iterator&lt;T&gt;</p></li><li><p><strong>Concrete Iterator (Iteradores concretos)</strong>: LibrosIterator y RandomLibrosIterator</p></li><li><p><strong>Collection (Colección abstracta)</strong>: CajaDeLibros (aunque en este caso es la misma que la colección concreta)</p></li><li><p><strong>Concrete Collection (Colección concreta)</strong>: CajaDeLibros</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:35:34 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127091602</guid>
      </item>
      <item>
         <title></title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127092687</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2125349153/34d8cf724a9235232fde9bee8aadd489/image.png" />
         <pubDate>2024-09-19 05:36:19 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127092687</guid>
      </item>
      <item>
         <title>¿Que es?</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127096498</link>
         <description><![CDATA[<p>El patrón <strong>Memento</strong> es un patrón de diseño de comportamiento que permite capturar y almacenar el estado interno de un objeto sin violar su encapsulamiento, para que el objeto pueda volver a ese estado más tarde. Se utiliza para implementar funciones de deshacer o restaurar en aplicaciones [2].</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:38:55 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127096498</guid>
      </item>
      <item>
         <title>¿Que error soluciona?</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127098048</link>
         <description><![CDATA[<p>Imagina que estás creando una aplicación de edición de texto. Además de la edición de texto simple, su editor puede formatear el texto, insertar imágenes en línea, etc.</p><p>En algún momento, decidiste permitir a los usuarios deshacer cualquier operación realizada en el texto. Esta característica se ha vuelto tan común a lo largo de los años que hoy en día la gente espera que todas las aplicaciones la tengan. Para la implementación, optó por adoptar el enfoque directo. Antes de realizar cualquier operación, la aplicación registra el estado de todos los objetos y lo guarda en algún lugar de almacenamiento. Más tarde, cuando un usuario decide revertir una acción, la aplicación recupera la última instantánea del historial y la utiliza para restaurar el estado de todos los objetos.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:39:55 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127098048</guid>
      </item>
      <item>
         <title>¿Como lo soluciona?</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127104166</link>
         <description><![CDATA[<p>El patrón sugiere almacenar la copia del estado del objeto en un objeto especial llamado <strong>memento</strong>. El contenido del memento no es accesible para ningún otro objeto, excepto para el que lo produjo. Otros objetos deben comunicarse con los mementos usando una interfaz limitada, que puede permitir acceder a meta datos de la instantánea (como el tiempo de creación, el nombre de la operación realizada, etc.), pero no al estado original que contiene la instantánea.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:43:28 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127104166</guid>
      </item>
      <item>
         <title>Analogía</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127113496</link>
         <description><![CDATA[<p>El patrón <strong>Memento</strong> puede explicarse con la analogía del <strong>papel carbón</strong>. Imagina que estás escribiendo en una máquina de escribir y debajo de la hoja principal colocas una hoja con papel carbón. Cada vez que escribes, el papel carbón guarda una copia exacta de lo que has escrito, pero esa copia no puede ser modificada directamente. Si en algún momento quieres restaurar lo que habías escrito antes, puedes sacar esa copia del papel carbón y volver al estado anterior. En esta analogía, la <strong>máquina de escribir</strong> es el objeto que genera el estado (el texto escrito), el <strong>papel carbón</strong> es el <strong>Memento</strong> que guarda una copia del estado, y el <strong>cajón donde guardas esas copias de papel carbón</strong> es el <strong>Caretaker</strong>, que se encarga de almacenar y restaurar esos estados sin tener acceso directo al contenido que guardan. Esto permite deshacer cambios y restaurar estados anteriores sin romper el encapsulamiento del objeto.</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2125349153/ad18da653e2eb69f9ff794e361f2936f/image.png" />
         <pubDate>2024-09-19 05:49:12 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127113496</guid>
      </item>
      <item>
         <title>Código (TypeScript)</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127116259</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:51:03 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127116259</guid>
      </item>
      <item>
         <title>Roles de ejemplo de código</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127127082</link>
         <description><![CDATA[<ul><li><p><strong>Originador (Originator)</strong>: MaquinaDeEscribir – el objeto que genera y guarda su propio estado.</p></li><li><p><strong>Memento</strong>: Memento – almacena el estado del Originador en un momento específico.</p></li><li><p><strong>Cuidador (Caretaker)</strong>: Caretaker – guarda y administra los Mementos sin conocer su contenido.</p></li><li><p><strong>Cliente (Client)</strong>: El código de simulación que interactúa con el Originador y el Caretaker para guardar y restaurar estados.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:56:58 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127127082</guid>
      </item>
      <item>
         <title>¿Que es?</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127131071</link>
         <description><![CDATA[<p>El patrón <strong>State</strong> es un patrón de diseño de comportamiento que permite a un objeto cambiar su comportamiento cuando su estado interno cambia. Desde el punto de vista del cliente, parece que el objeto cambia de clase. Este patrón es útil cuando un objeto debe cambiar su comportamiento dinámicamente dependiendo de su estado, evitando una gran cantidad de condicionales [3].</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 05:59:32 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127131071</guid>
      </item>
      <item>
         <title>¿Que error soluciona?</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127142070</link>
         <description><![CDATA[<p>El patrón <strong>State</strong> proporciona una solución al encapsular los comportamientos dependientes del estado en clases separadas, lo que permite que el objeto principal delegue las acciones a sus estados correspondientes. Esto elimina los condicionales extensos y facilita la adición de nuevos estados sin modificar el código existente. Un ejemplo clásico es un sistema de <strong>máquina de estados finitas</strong>, donde un objeto puede cambiar su comportamiento dinámicamente según su estado actual.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 06:06:13 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127142070</guid>
      </item>
      <item>
         <title>¿Como lo soluciona?</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127146542</link>
         <description><![CDATA[<p>El patrón de estado sugiere crear nuevas clases para todos los estados posibles de un objeto y extraer todos los comportamientos específicos del estado en estas clases.</p><p>En lugar de implementar todos los comportamientos por sí mismo, el objeto original, llamado contexto, almacena una referencia a uno de los objetos de estado que representa su estado actual, y delega todo el trabajo relacionado con el estado a este objeto.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 06:08:24 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127146542</guid>
      </item>
      <item>
         <title>Diagrama</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127146965</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2125349153/03d591697f76d3033f3dca5ed5926c24/image.png" />
         <pubDate>2024-09-19 06:08:44 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127146965</guid>
      </item>
      <item>
         <title>Diagrama</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127148689</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2125349153/3d234ba6639e1b35b9252e467e5fada6/image.png" />
         <pubDate>2024-09-19 06:09:31 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127148689</guid>
      </item>
      <item>
         <title>Analogía</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127156274</link>
         <description><![CDATA[<p>Imagina un <strong>reproductor de música</strong> que tiene varios estados: <strong>bloqueado</strong>, <strong>reproduciendo</strong> y <strong>pausado</strong>. Cada estado tiene un comportamiento diferente cuando presionas los botones.</p><ul><li><p>En el estado <strong>bloqueado</strong>, si presionas el botón de <strong>play</strong>, el reproductor no hará nada porque está bloqueado.</p></li><li><p>En el estado <strong>reproduciendo</strong>, si presionas el botón de <strong>play</strong>, el reproductor pausará la música.</p></li><li><p>En el estado <strong>pausado</strong>, si presionas el botón de <strong>play</strong>, el reproductor comenzará a reproducir la música nuevamente.</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2125349153/e668a2b3b6ac0cdd99f3681e14a4442c/image.png" />
         <pubDate>2024-09-19 06:14:25 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127156274</guid>
      </item>
      <item>
         <title>Código (TypeScript)</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127156966</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 06:14:50 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127156966</guid>
      </item>
      <item>
         <title>Roles de ejemplo de código</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127163437</link>
         <description><![CDATA[<ul><li><p><strong>Document (Context)</strong>: Corresponde a la clase MusicPlayer en el código, que es el objeto que delega el comportamiento a los estados y cambia su estado cuando es necesario.</p></li><li><p><strong>State (Interfaz)</strong>: Representa la interfaz State, que define los métodos que todos los estados deben implementar (play(), pause(), stop()).</p></li><li><p><strong>Draft (Estado Concreto)</strong>: En el código, esto corresponde a los estados concretos (PlayingState, PausedState, StoppedState), que implementan el comportamiento específico para cada estado del reproductor.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 06:18:35 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127163437</guid>
      </item>
      <item>
         <title>¿Que es?</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127164728</link>
         <description><![CDATA[<p>El patrón <strong>Mediator</strong> es un patrón de diseño de comportamiento que facilita la comunicación entre varios objetos sin que estos interactúen directamente entre sí, reduciendo las dependencias entre ellos. En lugar de que los objetos se comuniquen directamente, lo hacen a través de un <strong>mediador</strong> central, que se encarga de coordinar las interacciones. Esto ayuda a que el sistema sea más flexible y manejable, permitiendo cambiar las interacciones entre objetos sin modificarlos directamente [4].</p><p><br></p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 06:19:24 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127164728</guid>
      </item>
      <item>
         <title>¿Que error soluciona?</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127167151</link>
         <description><![CDATA[<p>Supongamos que tiene un cuadro de diálogo para crear y editar perfiles de clientes. Consta de varios controles de formulario, como campos de texto, casilla de verificación, botones, etc.</p><p><br></p><p>Algunos de los elementos del formulario pueden interactuar con otros. Por ejemplo, seleccionar la casilla "Tengo un perro" puede revelar un campo de texto oculto para ingresar el nombre del perro. Otro ejemplo es el botón de enviar que debe validar los valores de todos los campos antes de guardar los datos.</p><p><br></p><p>Los elementos pueden tener muchas relaciones con otros elementos. Por tanto, los cambios en algunos elementos pueden afectar a otros.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 06:20:53 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127167151</guid>
      </item>
      <item>
         <title>¿Como lo soluciona?</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127170708</link>
         <description><![CDATA[<p>El patrón mediador sugiere que debe cesar toda comunicación directa entre los componentes que desea independizar entre sí. En cambio, estos componentes deben colaborar indirectamente, llamando a un objeto mediador especial que redirige las llamadas a los componentes apropiados. Como resultado, los componentes dependen sólo de una única clase mediadora en lugar de estar acoplados a decenas de sus de sus colegas.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 06:23:01 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127170708</guid>
      </item>
      <item>
         <title>Diagrama</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127171815</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2125349153/dc3fff15fa173b45f228af281f0c5040/image.png" />
         <pubDate>2024-09-19 06:23:40 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127171815</guid>
      </item>
      <item>
         <title>Roles</title>
         <author>g2346015</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127176105</link>
         <description><![CDATA[<ul><li><p><strong>Mediator Interface (Interfaz del Mediador)</strong>: Mediador (define la interfaz notificar()).</p></li><li><p><strong>Concrete Mediator (Mediador Concreto)</strong>: DirectorDeOrquesta (coordina las interacciones entre los músicos).</p></li><li><p><strong>Components (Componentes)</strong>: Violinista, Pianista, Trompetista (los músicos que interactúan entre sí a través del mediador).</p></li><li><p><strong>Client (Cliente)</strong>: El código que instancia los componentes y el mediador, y comienza la secuencia de eventos.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 06:26:12 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3127176105</guid>
      </item>
      <item>
         <title>1. Definición</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128187432</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 16:32:09 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128187432</guid>
      </item>
      <item>
         <title>1. Definición</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128188143</link>
         <description><![CDATA[<p><strong><mark>Observer</mark></strong><mark> </mark>es un patrón de diseño de comportamiento que define una relación uno a muchos entre objetos, de manera que cuando un objeto cambia de estado, todos sus dependientes son notificados y actualizados automáticamente. Es comúnmente utilizado en sistemas donde diferentes componentes necesitan ser sincronizados sin estar fuertemente acoplados, como en sistemas de eventos o interfaces gráficas de usuario (GUI). [1]</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 16:32:37 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128188143</guid>
      </item>
      <item>
         <title>Referencias</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128196090</link>
         <description><![CDATA[<p>[4] G. Gamma, R. Helm, R. Johnson, and J. Vlissides, <em>Design Patterns: Elements of Reusable Object-Oriented Software</em>, Addison-Wesley, 1994, pp. 273-282.</p>]]></description>
         <enclosure url="https://refactoring.guru/design-patterns" />
         <pubDate>2024-09-19 16:37:58 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128196090</guid>
      </item>
      <item>
         <title>Referencias</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128196285</link>
         <description><![CDATA[<p>[2] G. Gamma, R. Helm, R. Johnson, and J. Vlissides, <em>Design Patterns: Elements of Reusable Object-Oriented Software</em>, Addison-Wesley, 1994, pp. 283-292.</p>]]></description>
         <enclosure url="https://refactoring.guru/design-patterns" />
         <pubDate>2024-09-19 16:38:07 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128196285</guid>
      </item>
      <item>
         <title>Referencias</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128196712</link>
         <description><![CDATA[<p>[1] G. Gamma, R. Helm, R. Johnson, and J. Vlissides, <em>Design Patterns: Elements of Reusable Object-Oriented Software</em>, Addison-Wesley, 1994, pp. 257-271.</p><p><a rel="noopener noreferrer nofollow" href="https://refactoring.guru/design-patterns">[5] https://refactoring.guru/design-patterns</a></p>]]></description>
         <enclosure url="https://refactoring.guru/design-patterns" />
         <pubDate>2024-09-19 16:38:18 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128196712</guid>
      </item>
      <item>
         <title>¿Que error soluciona?</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128201144</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 16:41:18 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128201144</guid>
      </item>
      <item>
         <title>¿Como lo soluciona?</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128201534</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 16:41:34 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128201534</guid>
      </item>
      <item>
         <title>Analogía</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128202002</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 16:41:52 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128202002</guid>
      </item>
      <item>
         <title>Diagrama</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128202271</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 16:42:05 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128202271</guid>
      </item>
      <item>
         <title>Ejemplo:</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128204785</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 16:43:57 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128204785</guid>
      </item>
      <item>
         <title>2. Relación con los principios SOLID</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128205187</link>
         <description><![CDATA[<p>El patrón <strong>Observer</strong> respalda los principios SOLID:</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 16:44:15 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128205187</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128205576</link>
         <description><![CDATA[<p><br/></p><ul><li><p><strong>Principio de Responsabilidad Única (SRP):</strong> Permite que los sujetos (objetos observados) se encarguen únicamente de actualizar su estado, delegando la responsabilidad de reacción en los observadores.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 16:44:31 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128205576</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128205698</link>
         <description><![CDATA[<ul><li><p><strong>Principio de Inversión de Dependencias (DIP):</strong> Los observadores dependen de interfaces, no de implementaciones concretas, lo que permite que diferentes tipos de observadores respondan a cambios de estado. [2]</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 16:44:37 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128205698</guid>
      </item>
      <item>
         <title>Ejemplo del Patrón Observer</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128205868</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 16:44:44 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128205868</guid>
      </item>
      <item>
         <title>4. Beneficios del observer:</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128206741</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 16:45:22 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128206741</guid>
      </item>
      <item>
         <title>5. Ejemplo práctico:</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128207152</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 16:45:38 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128207152</guid>
      </item>
      <item>
         <title>6. Desventajas del patrón observer:</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128207691</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 16:45:58 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128207691</guid>
      </item>
      <item>
         <title>7. Retos potenciales:</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128208061</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 16:46:12 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128208061</guid>
      </item>
      <item>
         <title>8. Patrones relacionados:</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128208140</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 16:46:16 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128208140</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128231085</link>
         <description><![CDATA[<p>Un ejemplo típico es un <strong>sistema de notificaciones</strong> en el cual varios usuarios (observadores) reciben actualizaciones de un sistema central (sujeto). Cuando el sujeto cambia de estado (como un nuevo mensaje), todos los observadores registrados son notificados automáticamente.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:00:14 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128231085</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128254628</link>
         <description><![CDATA[<ul><li><p><strong>Desacoplamiento:</strong> El sujeto y los observadores están desacoplados, lo que facilita la escalabilidad y el mantenimiento del sistema.</p></li><li><p><strong>Extensibilidad:</strong> Se pueden agregar nuevos observadores sin modificar el código existente.</p></li><li><p><strong>Flexibilidad en la notificación:</strong> Los observadores pueden registrarse y desregistrarse dinámicamente.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:16:51 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128254628</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128256655</link>
         <description><![CDATA[<p>Un ejemplo típico es un <strong>sistema de notificaciones</strong> en el cual varios usuarios (observadores) reciben actualizaciones de un sistema central (sujeto). Cuando el sujeto cambia de estado (como un nuevo mensaje), todos los observadores registrados son notificados automáticamente.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:18:09 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128256655</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128257928</link>
         <description><![CDATA[<p>Puede introducir complejidad en aplicaciones grandes con muchos observadores, especialmente cuando se requiere un control sobre el orden de las notificaciones o cuando el ciclo de vida de los observadores no está claramente definido</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:19:05 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128257928</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128258925</link>
         <description><![CDATA[<ul><li><p><strong>Patrón Mediador:</strong> Ambos patrones separan las interacciones entre objetos. Sin embargo, el mediador centraliza las interacciones, mientras que el Observer notifica a los observadores de manera distribuida.</p></li><li><p><strong>Patrón Event-Driven:</strong> Este patrón tiene una relación similar con Observer, ya que muchos sistemas de eventos utilizan la mecánica de observación para notificar a los oyentes cuando ocurre un evento.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:19:50 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128258925</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128259604</link>
         <description><![CDATA[<p>El patrón <strong>Command</strong> encapsula una solicitud como un objeto, permitiendo parametrizar clientes con diferentes solicitudes, poner en cola o registrar solicitudes, y soportar operaciones que se puedan deshacer. En lugar de que el cliente invoque directamente una operación, la solicitud se envuelve en un comando que puede ser ejecutado, deshecho o repetido según sea necesario.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:20:25 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128259604</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128260125</link>
         <description><![CDATA[<ul><li><p><strong>Principio Abierto/Cerrado (OCP):</strong> Nuevos comandos se pueden añadir sin modificar las clases existentes, lo que permite la extensión del sistema.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:20:48 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128260125</guid>
      </item>
      <item>
         <title>Relación con principios SOLID</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128260450</link>
         <description><![CDATA[<p>El patrón Command se alinea bien con los principios SOLID:</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:21:02 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128260450</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128261193</link>
         <description><![CDATA[<ul><li><p><strong>Principio de Responsabilidad Única (SRP):</strong> Cada comando tiene la responsabilidad de ejecutar una sola operación.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:21:30 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128261193</guid>
      </item>
      <item>
         <title>Ejemplo del patrón command:</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128261685</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:21:51 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128261685</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128262031</link>
         <description><![CDATA[<p>Un ejemplo común es en sistemas de interfaz de usuario, como un <strong>editor de texto</strong>. Cada acción del usuario (por ejemplo, copiar, cortar, pegar) se encapsula como un comando. Esto permite deshacer/rehacer acciones, almacenar comandos para su ejecución futura, y mantener un registro claro de las operaciones realizadas.</p>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2132701342/2252acb0f3602833a7cdf212af66d135/image.png" />
         <pubDate>2024-09-19 17:22:07 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128262031</guid>
      </item>
      <item>
         <title>Beneficios del patrón command:</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128262572</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:22:27 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128262572</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128262882</link>
         <description><![CDATA[<ul><li><p><strong>Desacoplamiento entre el emisor y el receptor:</strong> Los comandos permiten que el cliente esté desacoplado del receptor de la solicitud.</p></li><li><p><strong>Soporte para deshacer y rehacer operaciones:</strong> Al almacenar un historial de comandos, el sistema puede revertir acciones o repetirlas.</p></li><li><p><strong>Facilita la creación de colas de comandos:</strong> Los comandos se pueden almacenar en colas o listas para ser ejecutados en secuencia.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:22:42 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128262882</guid>
      </item>
      <item>
         <title>Desventajas del patrón command:</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128263195</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:22:56 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128263195</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128263965</link>
         <description><![CDATA[<p>El patrón Command puede agregar complejidad innecesaria en sistemas donde las operaciones son simples y no requieren flexibilidad adicional. Además, mantener un historial de comandos para soportar la operación de deshacer puede consumir recursos si no se gestiona adecuadamente</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:23:27 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128263965</guid>
      </item>
      <item>
         <title>Patrones relacionados:</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128264404</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:23:47 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128264404</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128264694</link>
         <description><![CDATA[<ul><li><p><strong>Patrón Estrategia:</strong> Ambos patrones encapsulan comportamientos, pero Command se centra en encapsular una operación que será ejecutada, mientras que Estrategia encapsula un algoritmo.</p></li><li><p><strong>Patrón Memento:</strong> Command y Memento pueden trabajar juntos para implementar deshacer y rehacer. Memento almacena el estado anterior del sistema, mientras que Command encapsula las acciones.</p></li></ul>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:24:01 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128264694</guid>
      </item>
      <item>
         <title>Referencias</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128265410</link>
         <description><![CDATA[<p>[2] Fowler, M. (2004). <em>Patterns of enterprise application architecture</em>. Addison-Wesley.</p><p>[3] Gamma, E., Helm, R., Johnson, R., &amp; Vlissides, J. (1995). <em>Design Patterns: Elements of Reusable Object-Oriented Software</em>. Addison-Wesley.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:24:23 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128265410</guid>
      </item>
      <item>
         <title>Referencias</title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128265541</link>
         <description><![CDATA[<p>[1] Fowler, M. (2004). <em>Patterns of enterprise application architecture</em>. Addison-Wesley.</p><p>[2] Gamma, E., Helm, R., Johnson, R., &amp; Vlissides, J. (1995). <em>Design Patterns: Elements of Reusable Object-Oriented Software</em>. Addison-Wesley.</p>]]></description>
         <enclosure url="" />
         <pubDate>2024-09-19 17:24:31 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128265541</guid>
      </item>
      <item>
         <title></title>
         <author>g2346014</author>
         <link>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128315877</link>
         <description><![CDATA[<ul><li><p><strong>Observable</strong>: Es el objeto que está siendo observado. Puede haber cambios de estado en este objeto que son importantes para otros objetos.</p></li><li><p><strong>ObserverA</strong> y <strong>ObserverB</strong>: Son los objetos observadores que se suscriben al objeto observable para ser notificados cuando ocurra un cambio de estado en él.</p></li></ul>]]></description>
         <enclosure url="https://padlet-uploads.storage.googleapis.com/2132701342/11902d1406dbf5467bf6358b2c3d8430/image.png" />
         <pubDate>2024-09-19 18:00:23 UTC</pubDate>
         <guid>https://padlet.com/g2346014/5q56hb94lp868bb4/wish/3128315877</guid>
      </item>
   </channel>
</rss>
