<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>diseño &#8211; Oscar Blancarte &#8211; Software Architecture</title>
	<atom:link href="https://www.oscarblancarteblog.com/tag/diseno/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.oscarblancarteblog.com</link>
	<description>Software Architect &#38; FullStack developer</description>
	<lastBuildDate>Wed, 23 Jul 2014 15:23:51 +0000</lastBuildDate>
	<language>es-MX</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.5.5</generator>

<image>
	<url>https://www.oscarblancarteblog.com/wp-content/uploads/2019/03/cropped-ob-32x32.png</url>
	<title>diseño &#8211; Oscar Blancarte &#8211; Software Architecture</title>
	<link>https://www.oscarblancarteblog.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">89905023</site>	<item>
		<title>Patrón de diseño Observer</title>
		<link>https://www.oscarblancarteblog.com/2014/07/23/patron-de-diseno-observer/</link>
					<comments>https://www.oscarblancarteblog.com/2014/07/23/patron-de-diseno-observer/#comments</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Wed, 23 Jul 2014 15:23:51 +0000</pubDate>
				<category><![CDATA[Patrones de Diseño]]></category>
		<category><![CDATA[arquitectura]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[EDA]]></category>
		<category><![CDATA[Observer]]></category>
		<category><![CDATA[Patron]]></category>
		<category><![CDATA[Patron de diseño]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[Programación orientada a objetos]]></category>
		<guid isPermaLink="false">http://javamex.wordpress.com/?p=209</guid>

					<description><![CDATA[<p>Este es sin duda uno de los patrones mas utilizados cuando trabajamos con aplicaciones de escritorio o al utilizar la Event-Driver Architecture(EDA).Un Observer es un componente el cual lo único que hace es estar atento a los eventos que el Target realiza, Cuando Target realiza un cambio o evento este notifica a todos los Observers [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/23/patron-de-diseno-observer/">Patrón de diseño Observer</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>				<a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/11/UML1-e1438565150654.gif"><img loading="lazy" class=" size-full wp-image-726 alignleft" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/11/UML1-e1438565150654.gif" alt="UML" width="86" height="100" /></a>Este es sin duda uno de los patrones mas utilizados cuando trabajamos con aplicaciones de escritorio o al utilizar la Event-Driver Architecture(EDA).Un Observer es un componente el cual lo único que hace es estar atento a los eventos que el Target realiza, Cuando Target realiza un cambio o evento este notifica a todos los Observers que están registrados. De esta manera las clases observer serán notificadas del evento que realizo el Target.</p>
<p>&nbsp;</p>
<p>Para explicar correctamente este Patrón de diseño le comparto esta imagen:</p>
<p><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/observer.png"><img loading="lazy" class="aligncenter wp-image-208" title="Observer" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/observer.png" alt="Observer" width="508" height="282" /></a></p>
<p>Imaginemos un escenario de la vida real para comprender mejor esta patrón para lo cual nos ubicamos en el Aeropuerto y estamos esperando a que nos indiquen que podemos abordar el avión por medio de las bocinas que hay en el aeropuerto.</p>
<p>Bien, de seguro no eres el único que esta esperando el vuelo, de seguro existen muchas personas que esperan el abordaje, En este escenario nosotros junto con todas las demas personas que esperan el vuelo son <strong>Observers </strong>y la bocina es el <strong>Tajet </strong>Ya que todos estamos atento a que nos indique que ya podemos abordar lo cual es un evento que realiza la bocina y que nosotros estamos esperando(Observando) para realizar una acción(Abordar).<span id="more-209"></span></p>
<p>Entonces el mecanismo por el cual el observer trabaja es el siguiente:</p>
<ol>
<li>Existe un componente u Objecto al cual queremos observar(<strong>Tarjet</strong>)</li>
<li>Tenemos algún modulo u otro Objeto(<strong>Observer</strong>) el cual queremos que sea notificado cuando Tarjet realice una acción.</li>
<li>Los <strong>Observers </strong>deben <strong>implementar</strong> una <strong>Interfaz</strong> <strong>común </strong>que tanto el Target como el Observer conozcan.</li>
<li>Los Observers deberán ser registrados en el Tarjet el cual los almacenara en una lista.</li>
<li>Cuando el Tarjet realice una acción notificara a todos los Observers los cuales se registraron en el paso anterior.</li>
<li>Los Observers recibirán la notificación como un Evento el cual el Observer procesara para hacer una acción.</li>
</ol>
<p>&nbsp;</p>
<p>Si nos damos cuenta es mucho mas simple de lo que parece y muchos de las aplicaciones utilizan este patrón y ni siquiera nos damos cuenta.</p>
<p>&nbsp;</p>
<p>En tu experiencia, ¿donde crees que se mas conveniente utilizar esta patrón o como lo implementarías?</p>
<p>&nbsp;</p>
<figure id="attachment_2333" aria-describedby="caption-attachment-2333" style="width: 648px" class="wp-caption aligncenter"><a href="https://reactiveprogramming.io/books/design-patterns/es" target="_blank" rel="noopener"><img loading="lazy" class="wp-image-2333 size-large" src="https://www.oscarblancarteblog.com/wp-content/uploads/2018/09/patrones-diseño-banner-1024x392.jpg" alt="Introducción a los patrones de diseño" width="648" height="248" /></a><figcaption id="caption-attachment-2333" class="wp-caption-text">¿Quieres aprender más patrones como este? te invito a que veas mi libro.</figcaption></figure>
<p>&nbsp;</p>
<p>Ya está a la venta mi nuevo libro &#8220;<a href="http://www.oscarblancarteblog.com/libros/introduccion-los-patrones-diseno/">Introducción a los patrones de diseño</a>&#8220;, en donde expongo los 25 patrones de diseño más utilizados y explicados desde un enfoque del mundo real, con ejemplos que pueden ser aplicados en tus proyectos. Sin duda es unos de los libros más completos de patrones de diseño en español.		</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/23/patron-de-diseno-observer/">Patrón de diseño Observer</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.oscarblancarteblog.com/2014/07/23/patron-de-diseno-observer/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">209</post-id>	</item>
		<item>
		<title>Patrón de diseño Modelo Vista Controlador (MVC)</title>
		<link>https://www.oscarblancarteblog.com/2014/07/21/patron-de-diseno-modelo-vista-controlador-mvc/</link>
					<comments>https://www.oscarblancarteblog.com/2014/07/21/patron-de-diseno-modelo-vista-controlador-mvc/#respond</comments>
		
		<dc:creator><![CDATA[oblancarte]]></dc:creator>
		<pubDate>Mon, 21 Jul 2014 16:07:19 +0000</pubDate>
				<category><![CDATA[Patrones de Diseño]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[patrones]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[Programación orientada a objetos]]></category>
		<guid isPermaLink="false">http://javamex.wordpress.com/?p=136</guid>

					<description><![CDATA[<p>Sin duda este es uno de los patrones de diseño mas utilizados cuando desarrollamos una pagina web sin embargo puede que no estemos consciente de que es si. El patrón MVC se ha convertido en un estándar para el desarrollo de aplicaciones que permite separar la aplicación entres capas que aunque estén relacionadas no siempre [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/21/patron-de-diseno-modelo-vista-controlador-mvc/">Patrón de diseño Modelo Vista Controlador (MVC)</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>				<a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/11/UML1-e1438565150654.gif"><img loading="lazy" class="alignleft wp-image-726" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/11/UML1-e1438565150654.gif" alt="UML" width="86" height="100" /></a>Sin duda este es uno de los patrones de diseño mas utilizados cuando desarrollamos una pagina web sin embargo puede que no estemos consciente de que es si.</p>
<p>El patrón MVC se ha convertido en un estándar para el desarrollo de aplicaciones que permite separar la aplicación entres capas que aunque estén relacionadas no siempre tiene por que estar juntas. Estas capas son la Vista, el Controlador y el Modelo y a continuación explico que es cada uno.</p>
<p><strong>Modelo: </strong>El modelo representa la información como tal, representan los datos con los que la aplicación esta trabajando, ya sea los datos de una tabla, un formulario, etc. Podríamos decir que el modelo es la información la cual el usuario puede visualizar en pantalla.</p>
<p>Por ejemplo este texto que estas leyendo en este momento es el modelo.</p>
<p><strong>Vista: </strong>Esta es la representación gráfica o pantalla que estas viendo en este momento, La vista requiere del Modelo para mostrar la información en la pantalla.</p>
<p><strong>Controlador: </strong>El controlador es el puente entre la vista y el modelo, ya que desde el controlador podemos hacer operaciones que cambien el modelo lo cual representa un cambio en los datos de la vista.</p>
<p>&nbsp;</p>
<p>El patrón MVC lo podrías ver de la siguiente manera:</p>
<p><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/mvc.png"><img loading="lazy" class="aligncenter size-full wp-image-137" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/mvc.png" alt="MVC" width="509" height="271" /></a><span id="more-136"></span></p>
<p>Fig.1: Patrón MVC &#8211; Las lineas continuas son asociaciones directas y las punteadas don indirectas.</p>
<p>Como podemos ver en la fig1 el controlador tiene una asociación con la vista y el modelo, ademas la vista tiene una asociación con el modelo.</p>
<p>Por lo cual cuando el usuario realiza una operación lo hace a través del controlador el cual realiza operaciones sobre el modelo y luego notifica a la vista para que actualice la información que vemos en pantalla, Cuando el modelo es actualizado este puede arrojar eventos que notifican a la vista para que se actualice es por eso que existe la linea punteada entre ambos.</p>
<p>La vista tiene una relación indirecta con el controlador debido a que existen implementaciones de MVC en las cuales la vista no tiene acceso al Modelo por lo cual toda la información la obtiene a través del controlador.</p>
<p>La siguiente figura muestra como los componentes interactúan</p>
<p><a href="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/mvcflow.png"><img loading="lazy" class="aligncenter size-full wp-image-139" src="http://www.oscarblancarteblog.com/wp-content/uploads/2014/07/mvcflow.png" alt="MVCFlow" width="528" height="391" /></a></p>
<p>Pasos</p>
<ol>
<li>El usuario realiza un operación en la pantalla como presionar un botón.</li>
<li>El controlador recibe la petición de realizar una acción</li>
<li>El modelo es actualiza por medio del controlador el cual puede agregar,actualizar o borrar información.</li>
<li>La vista es actualizada con los cambios realizados al modelo.</li>
<li>El usuario recibe las actualizaciones en pantalla.</li>
<li>FIN.</li>
</ol>
<p>Espero que esta breve explicación de lo que es MVC les sea de utilidad.</p>
<p>&nbsp;</p>
<figure id="attachment_2333" aria-describedby="caption-attachment-2333" style="width: 648px" class="wp-caption aligncenter"><a href="https://reactiveprogramming.io/books/design-patterns/es" target="_blank" rel="noopener"><img loading="lazy" class="wp-image-2333 size-large" src="https://www.oscarblancarteblog.com/wp-content/uploads/2018/09/patrones-diseño-banner-1024x392.jpg" alt="Introducción a los patrones de diseño" width="648" height="248" /></a><figcaption id="caption-attachment-2333" class="wp-caption-text">¿Quieres aprender más patrones como este? te invito a que veas mi libro.</figcaption></figure>
<p>&nbsp;</p>
<p>Ya está a la venta mi nuevo libro &#8220;<a href="http://www.oscarblancarteblog.com/libros/introduccion-los-patrones-diseno/">Introducción a los patrones de diseño</a>&#8220;, en donde expongo los 25 patrones de diseño más utilizados y explicados desde un enfoque del mundo real, con ejemplos que pueden ser aplicados en tus proyectos. Sin duda es unos de los libros más completos de patrones de diseño en español.		</p>
<p>The post <a rel="nofollow" href="https://www.oscarblancarteblog.com/2014/07/21/patron-de-diseno-modelo-vista-controlador-mvc/">Patrón de diseño Modelo Vista Controlador (MVC)</a> appeared first on <a rel="nofollow" href="https://www.oscarblancarteblog.com">Oscar Blancarte - Software Architecture</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.oscarblancarteblog.com/2014/07/21/patron-de-diseno-modelo-vista-controlador-mvc/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">136</post-id>	</item>
	</channel>
</rss>
