13.01.2015 Views

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

SHOW MORE
SHOW LESS

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 />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!