<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comentarios en: Setters/getters para todo??</title>
	<atom:link href="http://softinspain.com/desarrollo/settersgetters-para-todo/feed/" rel="self" type="application/rss+xml" />
	<link>http://softinspain.com/desarrollo/settersgetters-para-todo/</link>
	<description>negocios y software desde españa</description>
	<lastBuildDate>Tue, 31 Jan 2012 20:13:47 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>Por: Jose Alberto</title>
		<link>http://softinspain.com/desarrollo/settersgetters-para-todo/comment-page-1/#comment-515</link>
		<dc:creator>Jose Alberto</dc:creator>
		<pubDate>Mon, 06 Oct 2008 08:56:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.softinspain.web/?p=55#comment-515</guid>
		<description>Pablo, me gusta como lo has enfocado.

La verdad es que muchas veces se implementa la manipulación de los valores de los objetos fuera de éstos, convirtiéndolos en meros contenedores de datos.

Un saludo.</description>
		<content:encoded><![CDATA[<p>Pablo, me gusta como lo has enfocado.</p>
<p>La verdad es que muchas veces se implementa la manipulación de los valores de los objetos fuera de éstos, convirtiéndolos en meros contenedores de datos.</p>
<p>Un saludo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Pablo</title>
		<link>http://softinspain.com/desarrollo/settersgetters-para-todo/comment-page-1/#comment-513</link>
		<dc:creator>Pablo</dc:creator>
		<pubDate>Sun, 05 Oct 2008 01:01:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.softinspain.web/?p=55#comment-513</guid>
		<description>Segun como yo veo al mundo cuando pienso en objetos pienso mas en responsabilidades y mensajes y menos en atributos y propiedades. 
Tener getters y setters para todo me lleva a pensar que me esta importando demasiado los datos de un objeto. Y si me empiezan a importar demasiado los datos de un objeto entonces algo huele mal porque me estoy yendo un poquito afuera del paradigma (y claramente irme del paradigma no esta bueno!). 
En su lugar estaria bueno pensar en que tengo objetos y ellos tienen responsabilidades. Envío un mensaje a un objeto para que este realice algo y de esta forma colaborar. No quiero pedirle un dato para realizar algo por afuera y despues seguir por otro lado. Los objetos no son contenedores de datos. En todo caso son contenedores de comportamiento, de responsabilidades. Me gusta pensar en &quot;tell dont ask&quot; en cuanto a que quiero decir, queiro enviar mensajes, quiero pensar colaboraciones entre objetos y no en pedir datos y hacer validaciones y calculos por afuera. Esto me lleva a tener modelos anemicos. Objetos sin comportamiento. Los getters y setters no son malos en realidad. El punto es que ponerlos indiscriminadamente y asi por que si me va a llevar a pensar en objetos anemicos sin comportamiento ya que en realidad estan exponiendo todo su estado a todo el mundo. 
Uh.. se me hizo largo el comentario. 

Saludos, Pablo.</description>
		<content:encoded><![CDATA[<p>Segun como yo veo al mundo cuando pienso en objetos pienso mas en responsabilidades y mensajes y menos en atributos y propiedades. <br />
Tener getters y setters para todo me lleva a pensar que me esta importando demasiado los datos de un objeto. Y si me empiezan a importar demasiado los datos de un objeto entonces algo huele mal porque me estoy yendo un poquito afuera del paradigma (y claramente irme del paradigma no esta bueno!). <br />
En su lugar estaria bueno pensar en que tengo objetos y ellos tienen responsabilidades. Envío un mensaje a un objeto para que este realice algo y de esta forma colaborar. No quiero pedirle un dato para realizar algo por afuera y despues seguir por otro lado. Los objetos no son contenedores de datos. En todo caso son contenedores de comportamiento, de responsabilidades. Me gusta pensar en &#8220;tell dont ask&#8221; en cuanto a que quiero decir, queiro enviar mensajes, quiero pensar colaboraciones entre objetos y no en pedir datos y hacer validaciones y calculos por afuera. Esto me lleva a tener modelos anemicos. Objetos sin comportamiento. Los getters y setters no son malos en realidad. El punto es que ponerlos indiscriminadamente y asi por que si me va a llevar a pensar en objetos anemicos sin comportamiento ya que en realidad estan exponiendo todo su estado a todo el mundo. <br />
Uh.. se me hizo largo el comentario. </p>
<p>Saludos, Pablo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Ice</title>
		<link>http://softinspain.com/desarrollo/settersgetters-para-todo/comment-page-1/#comment-226</link>
		<dc:creator>Ice</dc:creator>
		<pubDate>Tue, 13 Mar 2007 14:06:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.softinspain.web/?p=55#comment-226</guid>
		<description>	&lt;p&gt;La estandarización de código garantiza la portabilidad y encapsulacion de las clases y de las librerias del una aplicación lo que provee de estabilidad a la aplicación, es decir, el mantenimiento se hace más fácil, menos costoso y con menos errores&lt;/p&gt;

</description>
		<content:encoded><![CDATA[<p>La estandarización de código garantiza la portabilidad y encapsulacion de las clases y de las librerias del una aplicación lo que provee de estabilidad a la aplicación, es decir, el mantenimiento se hace más fácil, menos costoso y con menos errores</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Andreu</title>
		<link>http://softinspain.com/desarrollo/settersgetters-para-todo/comment-page-1/#comment-114</link>
		<dc:creator>Andreu</dc:creator>
		<pubDate>Wed, 12 Apr 2006 10:53:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.softinspain.web/?p=55#comment-114</guid>
		<description>&lt;p&gt;Bueno, tampoco ha sido para tanto el abrir la caja de Pandora. Suele ser curioso, pero las principales discusiones suelen tener como base este tipo de cuestiones. También la gente en este foro está muy civilizada, los otros foros que visito tienen un alto componente artí­stico en &#8220;insultillos&#8221; como &#8220;amasijador de bytes&#8221; o similar.&lt;/p&gt;

	&lt;p&gt;Bueno, en mi opinión prefiero los getters/setters por el tema de la herencia y puesto que no es lo mismo heredar desde zona private que desde public en la mayoria de lenguajes orientados a objeto. En JAVA o Delphi la cosa queda bastante clarita&#8230;pero en C++ se complica que no veas. Por tanto, de este modo Standard es más facil no tener que recordar cada visibilidad de cada lenguaje: &#8220;¿Era a nivel de UNIT o a nivel de clase?&#8221;.  Usualmente no se complica mucho la gente y se mete todo en &#8220;public&#8221; y &#8220;private&#8221;, pero desde las &#8220;Friendly&#8221; hasta &#8220;Protected&#8221; existen muchas opciones a tener en cuenta en las clases.&lt;/p&gt;

	&lt;p&gt;Aún así­ PREFIERO que todo el codigo tenga uniformidad sobre la standarización. Si se ha hecho de la forma sencilla del ejemplo, perfecto&#8230; pero luego no liar con property&#8217;s, getters o procedimientos vagabundos.&lt;/p&gt;

	&lt;p&gt;De todos modos el objetivo principal son 2: QUE SE PERMITA EVOLUCIONAR FACILMENTE a partir del código actual y que SEA CLARO. Todo lo demás es más superfluo.&lt;/p&gt;

	&lt;p&gt;Me ha gustado este post. :D&lt;/p&gt;

	&lt;p&gt;Saludos.&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Bueno, tampoco ha sido para tanto el abrir la caja de Pandora. Suele ser curioso, pero las principales discusiones suelen tener como base este tipo de cuestiones. También la gente en este foro está muy civilizada, los otros foros que visito tienen un alto componente artí­stico en &#8220;insultillos&#8221; como &#8220;amasijador de bytes&#8221; o similar.</p>
<p>Bueno, en mi opinión prefiero los getters/setters por el tema de la herencia y puesto que no es lo mismo heredar desde zona private que desde public en la mayoria de lenguajes orientados a objeto. En JAVA o Delphi la cosa queda bastante clarita&#8230;pero en C++ se complica que no veas. Por tanto, de este modo Standard es más facil no tener que recordar cada visibilidad de cada lenguaje: &#8220;¿Era a nivel de UNIT o a nivel de clase?&#8221;.  Usualmente no se complica mucho la gente y se mete todo en &#8220;public&#8221; y &#8220;private&#8221;, pero desde las &#8220;Friendly&#8221; hasta &#8220;Protected&#8221; existen muchas opciones a tener en cuenta en las clases.</p>
<p>Aún así­ PREFIERO que todo el codigo tenga uniformidad sobre la standarización. Si se ha hecho de la forma sencilla del ejemplo, perfecto&#8230; pero luego no liar con property&#8217;s, getters o procedimientos vagabundos.</p>
<p>De todos modos el objetivo principal son 2: QUE SE PERMITA EVOLUCIONAR FACILMENTE a partir del código actual y que SEA CLARO. Todo lo demás es más superfluo.</p>
<p>Me ha gustado este post. <img src='http://softinspain.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Saludos.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Juan</title>
		<link>http://softinspain.com/desarrollo/settersgetters-para-todo/comment-page-1/#comment-113</link>
		<dc:creator>Juan</dc:creator>
		<pubDate>Tue, 11 Apr 2006 07:37:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.softinspain.web/?p=55#comment-113</guid>
		<description>&lt;p&gt;Considero que la primera forma es mejor, debido a la estandarización y a las ventajas que pueden aportar las propiedades.&lt;/p&gt;

	&lt;p&gt;El problema de los ejemplos es que al ser una clase con tan solo dos atributos (o propiedades) y no hacer un uso interno ni  mostrar un ejemplo más complejo, hace que el segundo sea mejor ya que es más corto y más claro.&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Considero que la primera forma es mejor, debido a la estandarización y a las ventajas que pueden aportar las propiedades.</p>
<p>El problema de los ejemplos es que al ser una clase con tan solo dos atributos (o propiedades) y no hacer un uso interno ni  mostrar un ejemplo más complejo, hace que el segundo sea mejor ya que es más corto y más claro.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Freddy</title>
		<link>http://softinspain.com/desarrollo/settersgetters-para-todo/comment-page-1/#comment-109</link>
		<dc:creator>Freddy</dc:creator>
		<pubDate>Sat, 08 Apr 2006 12:26:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.softinspain.web/?p=55#comment-109</guid>
		<description>&lt;p&gt;Bueno&#8230;. &lt;/p&gt;

	&lt;p&gt;Si estan familiarizados con la teoria del Paradigma de objetos sabran que dice q para leer y modificar atributos se debe usar settery getter, eso no implica q su pueda programar si ellos.&lt;/p&gt;

	&lt;p&gt;Cualquier paradigma q sea puramente de objetos como puede ser smalltalk siempre tendarn getter y setter&lt;/p&gt;

	&lt;p&gt;salu2&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Bueno&#8230;. </p>
<p>Si estan familiarizados con la teoria del Paradigma de objetos sabran que dice q para leer y modificar atributos se debe usar settery getter, eso no implica q su pueda programar si ellos.</p>
<p>Cualquier paradigma q sea puramente de objetos como puede ser smalltalk siempre tendarn getter y setter</p>
<p>salu2</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: JUan peres</title>
		<link>http://softinspain.com/desarrollo/settersgetters-para-todo/comment-page-1/#comment-107</link>
		<dc:creator>JUan peres</dc:creator>
		<pubDate>Fri, 07 Apr 2006 13:16:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.softinspain.web/?p=55#comment-107</guid>
		<description>&lt;p&gt;El tema es que si quieres definir una propiedad desde el Analizador de objetos, no figuran las definidas en el codigom limpio, en cambio si las que defines como propery.&lt;/p&gt;

	&lt;p&gt;Yo solo defino properties si necesito definir algo en tiempo de diseño.&lt;/p&gt;

	&lt;p&gt;Saludos&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>El tema es que si quieres definir una propiedad desde el Analizador de objetos, no figuran las definidas en el codigom limpio, en cambio si las que defines como propery.</p>
<p>Yo solo defino properties si necesito definir algo en tiempo de diseño.</p>
<p>Saludos</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Jose Alberto</title>
		<link>http://softinspain.com/desarrollo/settersgetters-para-todo/comment-page-1/#comment-106</link>
		<dc:creator>Jose Alberto</dc:creator>
		<pubDate>Fri, 07 Apr 2006 07:30:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.softinspain.web/?p=55#comment-106</guid>
		<description>&lt;p&gt;Pues yo veo que una propiedad (tal como se implementa en Delphi/C#) encapsula bastante, ya que desde fuera de la clase no hay forma de alterar las validaciones o funcionalidad del setter correspondiente.&lt;/p&gt;

	&lt;p&gt;Yo lo veo como una &lt;em&gt;facilidad&lt;/em&gt; a la hora de escribir código, me resulta comodo tratar una propiedad como una variable más. Y, si es necesario, implementar un setter/getter, pero si no es necesario &lt;strong&gt;no&lt;/strong&gt;, y de eso es de lo que me quejo, de la maní­a que tenemos a veces de complicar las cosas más de lo necesario, también por eso existe la refactorización, no?&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Pues yo veo que una propiedad (tal como se implementa en Delphi/C#) encapsula bastante, ya que desde fuera de la clase no hay forma de alterar las validaciones o funcionalidad del setter correspondiente.</p>
<p>Yo lo veo como una <em>facilidad</em> a la hora de escribir código, me resulta comodo tratar una propiedad como una variable más. Y, si es necesario, implementar un setter/getter, pero si no es necesario <strong>no</strong>, y de eso es de lo que me quejo, de la maní­a que tenemos a veces de complicar las cosas más de lo necesario, también por eso existe la refactorización, no?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: JM</title>
		<link>http://softinspain.com/desarrollo/settersgetters-para-todo/comment-page-1/#comment-105</link>
		<dc:creator>JM</dc:creator>
		<pubDate>Fri, 07 Apr 2006 07:19:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.softinspain.web/?p=55#comment-105</guid>
		<description>&lt;p&gt;Hombre&#8230; en alguna cosa estoy de acuerdo contigo, pero en otras no.&lt;/p&gt;

	&lt;p&gt;Tienes razón cuando dices que se abusa de getters/propiedades/atributos, etc. cuando lo que habrí­a que hacer es &#8220;pedir al objeto que haga algo&#8221;, en vez de preguntarle por sus datos y hacelo desde fuera.&lt;br /&gt;&lt;br /&gt;Muchas veces se tiene la costumbre de poner un get/set automático por cada miembro privado, automaticamente, y eso no tiene sentido, ya que se está rompiendo igual la encapsulación, pero con una máscara de OOP.&lt;br /&gt;&lt;br /&gt;(sobre este tema merece la pena leer &lt;a href=&quot;http://www.agile-spain.com/agilev2/erradicadordemetodosget&quot;&gt;este artí­culo de Martin Fowler&lt;/a&gt;)&lt;/p&gt;

	&lt;p&gt;Sin embargo, creo que con el tema de las propiedades de equivocas. En Delphi/C# (y supongo que algún otro) dan un paso más y sustituyen los get/set por una propiedad. Esa propiedad se accede de la misma forma que una variable normal (primer error) y lo que se hace en tiempo de compilación es sustituí­r la asignación por una llamada a un set y la lectura por una llamada a su get.&lt;br /&gt;&lt;br /&gt;Se trata de disfrazar un get/set de variable para que desde fuera no se note la diferencia (grave error).&lt;/p&gt;

	&lt;p&gt;Así­ que si dices que &#8220;las propiedades públicas deberí­an estar prohibidas&#8221;, deberí­as decir también que &#8220;los métodos públicos deberí­an estar prohibidos&#8221;, ya que al fin y al cabo una propiedad se tranforma en un get/set.&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Hombre&#8230; en alguna cosa estoy de acuerdo contigo, pero en otras no.</p>
<p>Tienes razón cuando dices que se abusa de getters/propiedades/atributos, etc. cuando lo que habrí­a que hacer es &#8220;pedir al objeto que haga algo&#8221;, en vez de preguntarle por sus datos y hacelo desde fuera.</p>
<p>Muchas veces se tiene la costumbre de poner un get/set automático por cada miembro privado, automaticamente, y eso no tiene sentido, ya que se está rompiendo igual la encapsulación, pero con una máscara de OOP.</p>
<p>(sobre este tema merece la pena leer <a href="http://www.agile-spain.com/agilev2/erradicadordemetodosget">este artí­culo de Martin Fowler</a>)</p>
<p>Sin embargo, creo que con el tema de las propiedades de equivocas. En Delphi/C# (y supongo que algún otro) dan un paso más y sustituyen los get/set por una propiedad. Esa propiedad se accede de la misma forma que una variable normal (primer error) y lo que se hace en tiempo de compilación es sustituí­r la asignación por una llamada a un set y la lectura por una llamada a su get.</p>
<p>Se trata de disfrazar un get/set de variable para que desde fuera no se note la diferencia (grave error).</p>
<p>Así­ que si dices que &#8220;las propiedades públicas deberí­an estar prohibidas&#8221;, deberí­as decir también que &#8220;los métodos públicos deberí­an estar prohibidos&#8221;, ya que al fin y al cabo una propiedad se tranforma en un get/set.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Jose Alberto</title>
		<link>http://softinspain.com/desarrollo/settersgetters-para-todo/comment-page-1/#comment-104</link>
		<dc:creator>Jose Alberto</dc:creator>
		<pubDate>Fri, 07 Apr 2006 07:16:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.softinspain.web/?p=55#comment-104</guid>
		<description>&lt;p&gt;Bueno, bueno, que conversación más interesante &#8230; :D&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;JM&lt;/strong&gt;, has dado en el clavo, porque esos &#8220;vicios&#8221; vienen de Java, seguro.&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;Rastafari&lt;/strong&gt;, me parece demasiado radical lo que propones ;) A mi  me parece más &#8220;&lt;em&gt;elegante&lt;/em&gt;&#8221; tratar las propiedades directamente y no a través de llamadas (setNombre(&#8216;Juan&#8217;), getNombre,...)&lt;/p&gt;

	&lt;p&gt;&lt;strong&gt;pkito&lt;/strong&gt;, no puedo estar de acuerdo con lo que comentas, el cambio a realizar es prácticamente el mismo, si necesitas añadir una validación a una propiedad solo tocaras o añadiras el setter.&lt;/p&gt;</description>
		<content:encoded><![CDATA[<p>Bueno, bueno, que conversación más interesante &#8230; <img src='http://softinspain.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><strong>JM</strong>, has dado en el clavo, porque esos &#8220;vicios&#8221; vienen de Java, seguro.</p>
<p><strong>Rastafari</strong>, me parece demasiado radical lo que propones <img src='http://softinspain.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  A mi  me parece más &#8220;<em>elegante</em>&#8221; tratar las propiedades directamente y no a través de llamadas (setNombre(&#8216;Juan&#8217;), getNombre,...)</p>
<p><strong>pkito</strong>, no puedo estar de acuerdo con lo que comentas, el cambio a realizar es prácticamente el mismo, si necesitas añadir una validación a una propiedad solo tocaras o añadiras el setter.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

