<?xml version="1.0" encoding="windows-1251"?>
<rss version="0.92">
<channel>
<title>WikiJuanan - ModeloMVC</title>
<link>http://wiki.us.es/juanan/wakka.php?wakka=ModeloMVC</link>
<description>History/revisions of WikiJuanan/ModeloMVC</description>
<language>en-us</language>
<item>
<title>2007-03-01 18:42:20</title>
<link>http://wiki.us.es/juanan/wakka.php?wakka=ModeloMVC/show&amp;time=2007-03-01+18%3A42%3A20</link>
<description>&lt;a name="p1781-1">&lt;/a>&lt;p class="auto" id="p1781-1">&lt;span class="missingpage">Ruby&amp;nbsp;On&amp;nbsp;Rails&lt;/span>&lt;a href="http://wiki.us.es/juanan/wakka.php?wakka=RubyOnRails/edit&amp;amp;add=1" title="Crear esta página">?&lt;/a> &amp;ndash; &lt;a name="designpatterns" href="http://wiki.us.es/juanan/wakka.php?wakka=DesignPatterns" class="">Design&amp;nbsp;Patterns&lt;/a>&lt;/p>&lt;hr noshade="noshade" size="1" />&lt;a name="p1781-2">&lt;/a>&lt;p class="auto" id="p1781-2">
Michel Martens&lt;br />
&lt;a href="http://lists.simplelogica.net/pipermail/ror-es/2005-January/000022.html" target="_blank" title="Vinculo externo
(en nueva ventana)" class="outerlink">&lt;img src="http://wiki.us.es/juanan/themes/default/icons/web.gif" alt="" border="0" />http://lists.simplelogica.net/pipermail/ror-es/2005-January/000022.html&lt;/a>&lt;/p>&lt;hr noshade="noshade" size="1" />&lt;a name="p1781-3">&lt;/a>&lt;p class="auto" id="p1781-3">
Mi&amp;nbsp;consejo es&amp;nbsp;que estudien no&amp;nbsp;sólo MVC, sino &lt;a name="patronesdediseno" href="http://wiki.us.es/juanan/wakka.php?wakka=PatronesDeDiseno" class="" title="Patrones&amp;nbsp;De&amp;nbsp;Diseño">patrones de&amp;nbsp;programación&lt;/a>&lt;br />
en&amp;nbsp;general. &lt;span class="missingpage">Ruby&amp;nbsp;On&amp;nbsp;Rails&lt;/span>&lt;a href="http://wiki.us.es/juanan/wakka.php?wakka=RubyOnRails/edit&amp;amp;add=1" title="Crear esta página">?&lt;/a> es&amp;nbsp;más que&amp;nbsp;puro MVC: &lt;span class="missingpage">Active&amp;nbsp;Record&lt;/span>&lt;a href="http://wiki.us.es/juanan/wakka.php?wakka=ActiveRecord/edit&amp;amp;add=1" title="Crear esta página">?&lt;/a>, por&amp;nbsp;ejemplo, es&lt;br />
la&amp;nbsp;implementación de&amp;nbsp;un &amp;#147;pattern&amp;#148; del&amp;nbsp;mismo nombre.&lt;/p>&lt;br />&lt;a name="p1781-4">&lt;/a>&lt;p class="auto" id="p1781-4">
La&amp;nbsp;idea del&amp;nbsp;MVC es&amp;nbsp;separar el&amp;nbsp;problema en&amp;nbsp;tres capas: model, view y&amp;nbsp;controller.&lt;/p>&lt;a name="h1781-1">&lt;/a>&lt;h2> Model &lt;/h2>&lt;a name="p1781-5">&lt;/a>&lt;p class="auto" id="p1781-5">
El&amp;nbsp;&amp;#147;model&amp;#148; representa la&amp;nbsp;&amp;#147;realidad&amp;#148;, y&amp;nbsp;un modelo simple podría ser&amp;nbsp;un&lt;br />
objeto del&amp;nbsp;tipo Person con&amp;nbsp;los atributos name, lastname, gender,&lt;br />
birthday. No&amp;nbsp;tiene importancia si&amp;nbsp;se trata de&amp;nbsp;una tabla en&amp;nbsp;una base de&lt;br />
datos o&amp;nbsp;de un&amp;nbsp;archivo XML, YAML, etcétera. Lo&amp;nbsp;importante es&amp;nbsp;que&lt;br />
refleje la&amp;nbsp;realidad (o el&amp;nbsp;aspecto de&amp;nbsp;la realidad que&amp;nbsp;nos interesa). El&lt;br />
&amp;#147;model&amp;#148; no&amp;nbsp;es un&amp;nbsp;objeto estático, sino una&amp;nbsp;especie de&amp;nbsp;máquina con&lt;br />
botones que&amp;nbsp;pueden ser&amp;nbsp;manipulados a&amp;nbsp;discreción. Así, nuestro model&lt;br />
&amp;#147;Person&amp;#148; puede tener métodos como age&amp;nbsp;(retorna la&amp;nbsp;diferencia en&amp;nbsp;años&lt;br />
entre &amp;#147;hoy&amp;#148; y&amp;nbsp;el atributo birthday), o&amp;nbsp;full_name (retorna la&lt;br />
concatenación de&amp;nbsp;los atributos name y&amp;nbsp;lastname).&lt;/p>&lt;a name="h1781-2">&lt;/a>&lt;h2> Controller &lt;/h2>&lt;a name="p1781-6">&lt;/a>&lt;p class="auto" id="p1781-6">
El&amp;nbsp;controler conoce al&amp;nbsp;model, sabe qué&amp;nbsp;atributos y&amp;nbsp;qué métodos tiene,&lt;br />
pero no&amp;nbsp;a la&amp;nbsp;inversa: el&amp;nbsp;model no&amp;nbsp;sabe quién lo&amp;nbsp;manipula, simplemente&lt;br />
se&amp;nbsp;deja manipular. El&amp;nbsp;controller sabe, además, qué&amp;nbsp;es&amp;nbsp;lo que&amp;nbsp;el&lt;br />
usuario del&amp;nbsp;sistema intenta hacer. Si&amp;nbsp;el usuario quiere crear una&lt;br />
nueva instancia del&amp;nbsp;tipo Person, el&amp;nbsp;controller creará el&amp;nbsp;objeto&lt;br />
(person = &lt;span class="missingpage">Person.new&lt;/span>&lt;a href="http://wiki.us.es/juanan/wakka.php?wakka=Person/new/edit&amp;amp;add=1" title="Crear esta página">?&lt;/a>) y&amp;nbsp;mostrará un&amp;nbsp;formulario para que&amp;nbsp;los datos&lt;br />
necesarios sean cargados por&amp;nbsp;el&amp;nbsp;usuario. ¿Cómo hace el&amp;nbsp;controller para&lt;br />
mostrar un&amp;nbsp;formulario? Delega el&amp;nbsp;control en&amp;nbsp;una vista determinada...&lt;/p>&lt;a name="h1781-3">&lt;/a>&lt;h2> View &lt;/h2>&lt;a name="p1781-7">&lt;/a>&lt;p class="auto" id="p1781-7">
Una&amp;nbsp;view también conoce el&amp;nbsp;model pero no&amp;nbsp;tiene por&amp;nbsp;qué saber desde&lt;br />
donde lo&amp;nbsp;llamaron.  Simplemente se&amp;nbsp;limita a&amp;nbsp;mostrar un&amp;nbsp;aspecto del&lt;br />
modelo, por&amp;nbsp;ejemplo:&lt;/p>&lt;br />&lt;a name="p1781-8">&lt;/a>&lt;p class="auto" id="p1781-8">
Nombre : &amp;lt;%= person.name %&amp;gt;&lt;br />
Apellido: &amp;lt;%= person.lastname %&amp;gt;&lt;/p>&lt;br />&lt;a name="p1781-9">&lt;/a>&lt;p class="auto" id="p1781-9">
Etcétera. No&amp;nbsp;sé si&amp;nbsp;queda claro a&amp;nbsp;partir de&amp;nbsp;esta explicación tan&amp;nbsp;breve.&lt;br />
Me&amp;nbsp;parece que&amp;nbsp;sería más&amp;nbsp;útil, además, despejar antes que&amp;nbsp;nada las&lt;br />
dudas relacionadas con&amp;nbsp;la&amp;nbsp;programación orientada a&amp;nbsp;objetos. Les&amp;nbsp;dejo&lt;br />
algunos links:&lt;/p>&lt;br />&lt;a name="p1781-10">&lt;/a>&lt;p class="auto" id="p1781-10">
Castellano&lt;br />
&lt;a href="http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos" target="_blank" title="Vinculo externo
(en nueva ventana)" class="outerlink">&lt;img src="http://wiki.us.es/juanan/themes/default/icons/web.gif" alt="" border="0" />http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos&lt;/a>&lt;br />
&lt;a href="http://es.wikipedia.org/wiki/Patrones_de_dise%C3%B1o" target="_blank" title="Vinculo externo
(en nueva ventana)" class="outerlink">&lt;img src="http://wiki.us.es/juanan/themes/default/icons/web.gif" alt="" border="0" />http://es.wikipedia.org/wiki/Patrones_de_dise%C3%B1o&lt;/a>&lt;/p>&lt;br />&lt;a name="p1781-11">&lt;/a>&lt;p class="auto" id="p1781-11">
Inglés&lt;br />
&lt;a href="http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29" target="_blank" title="Vinculo externo
(en nueva ventana)" class="outerlink">&lt;img src="http://wiki.us.es/juanan/themes/default/icons/web.gif" alt="" border="0" />http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29&lt;/a>&lt;br />
&lt;a href="http://c2.com/cgi/wiki?StartingPoints" target="_blank" title="Vinculo externo
(en nueva ventana)" class="outerlink">&lt;img src="http://wiki.us.es/juanan/themes/default/icons/web.gif" alt="" border="0" />http://c2.com/cgi/wiki?StartingPoints&lt;/a>&lt;/p></description>
</item>
<item>
<title>2006-06-29 16:32:29</title>
<link>http://wiki.us.es/juanan/wakka.php?wakka=ModeloMVC/show&amp;time=2006-06-29+16%3A32%3A29</link>
<description>edited by JuananRuiz</description>
</item>
</channel>
</rss>

 <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
 </script>
 <script type="text/javascript">
  _uacct = "UA-1947893-2";
  urchinTracker();
 </script>

