Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
✐<br />
✐<br />
✐<br />
“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 24 — #62<br />
✐<br />
Capítulo 1. Introducción a los Objetos<br />
2. Montaje de objetos. Si está construy<strong>en</strong>do un objeto descubrirá la necesidad de<br />
nuevos miembros que no aparec<strong>en</strong> durante la fase de descubrimi<strong>en</strong>to. Las necesidades<br />
internas del objeto pued<strong>en</strong> requerir otras clases que le d<strong>en</strong> soporte.<br />
3. Construcción del sistema. Una vez más, pued<strong>en</strong> aparecer más requisitos para<br />
un objeto a lo largo de esta etapa. Conforme apr<strong>en</strong>de, evoluciona sus objetos.<br />
La necesidad de comunicación e interconexión con otros objetos <strong>en</strong> el sistema<br />
puede cambiar las necesidades de sus clases o requerir clases nuevas. Por ejemplo,<br />
puede descubrir la necesidad de clases utilería o ayudantes (helper), como<br />
una lista <strong>en</strong>lazada, que conti<strong>en</strong><strong>en</strong> o no una pequeña información de estado y<br />
que simplem<strong>en</strong>te ayudan a la función de otras clases.<br />
4. Ext<strong>en</strong>sión del sistema. Cuando añada nuevas características a un sistema puede<br />
descubrir que su diseño previo no soportaba ext<strong>en</strong>siones s<strong>en</strong>cillas del sistema.<br />
Con esta nueva información, puede reestructurar partes del sistema, posiblem<strong>en</strong>te<br />
añadi<strong>en</strong>do nuevas clases o jerarquía de clases.<br />
5. Reutilización de objetos. Esta es la verdadera prueba de estrés para una clase. Si<br />
algui<strong>en</strong> int<strong>en</strong>ta reutilizarla <strong>en</strong> una situación completam<strong>en</strong>te nueva, probablem<strong>en</strong>te<br />
descubrirá algunos defectos. Si cambia una clase para adaptarla a nuevos<br />
programas, los principios g<strong>en</strong>erales de la clase se verán más claros, hasta<br />
que consiga un tipo verdaderam<strong>en</strong>te reutilizable. Sin embargo, no espere que<br />
muchos objetos del diseño de un sistema sean reutilizables -es perfectam<strong>en</strong>te<br />
aceptable que la mayor parte de los objetos sean específicos para el sistema. Los<br />
tipos reutilizables ti<strong>en</strong>d<strong>en</strong> a ser m<strong>en</strong>os comunes, y deb<strong>en</strong> resolver problemas<br />
más g<strong>en</strong>erales para ser reutilizables.<br />
Directrices para desarrollo de objetos<br />
Estas etapas sugier<strong>en</strong> algunas directrices cuando se pi<strong>en</strong>sa sobre el desarrollo de<br />
clases:<br />
1. Permita que un problema específico dé lugar a una clase, después deje que la<br />
clase crezca y madure durante la solución de otros problemas.<br />
2. Recuerde, descubrir las clases que necesita (y sus interfaces) supone la mayor<br />
parte del diseño del sistema. Si ya t<strong>en</strong>ía esas clases, será un proyecto fácil.<br />
3. No se esfuerce por saber todo desde el principio; apr<strong>en</strong>da conforme avanza.<br />
Ocurrirá así de todos modos.<br />
4. Comi<strong>en</strong>ce a programar; consiga t<strong>en</strong>er algo funcionando para poder aprobar o<br />
desaprobar su diseño. No t<strong>en</strong>ga miedo a que acabe haci<strong>en</strong>do código procedural<br />
espagueti -las clases divid<strong>en</strong> el problema y ayudan a controlar la anarquía y la<br />
<strong>en</strong>tropía. Las clases malas no estropean las bu<strong>en</strong>as.<br />
5. Manténgalo simple. Pequeños objetos claros con utilidades obvias son mejores<br />
que grandes interfaces complicadas. Cuando aparezcan los puntos de decisión,<br />
aplique el principio de la Navaja de Occam: Considere las alternativas y elija<br />
la más simple, porque las clases simples casi siempre son mejores. Empiece<br />
con clases pequeñas y s<strong>en</strong>cillas, y podrá ampliar la interfaz cuando la <strong>en</strong>ti<strong>en</strong>da<br />
mejor, pero cuando esto ocurra, será difícil eliminar elem<strong>en</strong>tos de la clase.<br />
24<br />
✐<br />
✐<br />
✐<br />
✐