2012/11/24 Javier Gutierrez <span dir="ltr"><<a href="mailto:ukeitaro@yahoo.es" target="_blank">ukeitaro@yahoo.es</a>></span><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div><div style="font-size:12pt;font-family:'times new roman','new york',times,serif"><div><span><div class="">Hola Jose.<u></u><u></u></div>
<div class=""><u></u> <u></u></div>
<div class="">Las preguntas que planteas es muy interesante y me voy a
mojar.</div></span></div></div></div></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div><div style="font-size:12pt;font-family:'times new roman','new york',times,serif"><div><span><div class="">- Te quitas código de en medio, lo puedes poner en una esquina
y usarlo sin que te estorbe.<u></u><u></u></div>
<div class="">- Tu código va a ser más fácil e probar.<u></u><u></u></div>
<div class="">- Llevándote código aparte y aislándolo te va a resultar más
sencillo refactorizarlo.</div></span></div></div></div></blockquote><div><br></div><div>Estos tres puntos en particular yo discutiría si son realmente beneficio directo del (o incluso facilitado por) uso de objetos y patrones. Los objetos y patrones son parte del juego de herramientas de "buenas prácticas" del programador, pero hace falta experiencia y buen juicio para saber dónde y cómo aplicarlos, que es parte de mi razonamiento. Hay otras buenas prácticas que también te ayudan a conseguir lo de arriba...</div>
<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div style="font-size:12pt;font-family:'times new roman','new york',times,serif">
<div><div style="font-family:arial;font-size:small"><div class="" style="font-family:'times new roman','new york',times,serif;font-size:16px">- Aumenta la reusabilidad, bien directamente bien mediante el uso de herencia.<u></u><u></u></div>
</div><span><div class=""></div></span></div></div></div></blockquote><div><br></div><div>... siendo ésta, específicamente, una de las cosas que no necesariamente se obtienen mediante el uso de objetos (la reusabilidad, digo). Cualquiera que se haya mirado trabajos clásicos sobre el asunto (Construcción de Software Orientado a Objetos, de Meyers, por ejemplo), sabe que hay varios aspecto que inciden en la reusabilidad del código, dentro del propio paradigma de orientación a objetos (eg. acoplamiento) y que uno tiene que calibrarlos bien cuando hace su diseño. Y que a veces tienes que llegar a compromisos, porque no existe la panacea y el diseño perfecto es un objetivo a marcarse... pero que a menudo choca con la realidad.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div style="font-size:12pt;font-family:'times new roman','new york',times,serif">
<div><span><div class="">Por supuesto, hay que valorar si todo lo anterior merece la
pena, ya que, aunque suena muy bien, podríamos caer en el riesgo e utilizar
sobreingeniería. En ese sentido, la respuesta que nos da Ricardo es muy
interesante y merece la pena tener en cuenta sus motivos.<u></u><u></u></div></span></div></div></div></blockquote><div><br></div><div>Bingo</div><div><br></div><div>Otro asunto que no hemos tocado es que hay varias "escuelas" en lo que toca a la implementación del modelo de objetos, en sí (vamos, cómo lo plasmas en un lenguaje). No son lo mismo los objetos de Java y C++ que los de Go, que los de Python (que, entre otras cosas, no incorpora una de las "patas" de ciertas escuelas, la encapsulación como medio de restringir acceso a miembros), que los de Smalltalk (que por cierto, me encantan). Es aconsejable aprender los conceptos de la orientación a objetos y los patrones como reglas generales e interiorizarlos como el "espíritu" que debe guiar tu forma de programar, pero no la "letra", pues luego hay que aplicarlo al lenguaje que tienes a mano, con las ventajas y desventajas que te de.</div>
<div><br class="">Eg: ¿quién no ha echado de menos el duck typing al tener que irse a Java?<br></div><div><br></div><div>De todas maneras, no quiero meterme en fregados teológicos, porque se va de madre el hilo y no es lo que preguntaba Jose.</div>
<div><br></div><div>Saludos,</div><div>Ricardo</div></div></div>