Acerca de:

Este blog contiene los códigos, ejemplos y bases de datos que he usado cuando aprendía acerca de algún tema específico. En lugar de borrarlos (una vez dominado ya el tema), he decidido publicarlos :)

viernes, 2 de julio de 2010

Reutilización de componentes en desarrollo de software

Una respuesta que di cuando alguien me preguntó sobre la reutilización de componentes en desarrollo de software:

Las librerías de la plataforma .Net agrupan clases que sirven para hacer todo: mandar y recibir datos de la consola, controlar el puerto serial, los trabajos de impresión, contienen controles tales como formularios para crear ventanas, botones, cajas de texto, etc.

.Net se basa en la reutilización de pedazos de software (las librerías) y la POO. En .Net todo son clases (las librerías, también llamadas Namespaces agrupan a las clases) y objetos que referencian a estas clases y pueden "heredar" o hacer uso de sus métodos, dentro de éstos están los algoritmos.

En el generador de laberintos se usan mucho las clases y objetos que proporciona el namespace System.Drawings. Yo no he creado ningún componente, todo el laberinto se crea usando este namespace. El objeto de tipo Graphics hereda los métodos necesarios para dibujar el laberinto.

Una explicación más detallada de cómo lo programé está en mi web:
http://yelinna.comoj.com/eam/maze_generator.html
http://yelinna.comoj.com/eam/maze_generator_hex.html

El equivalente de .Net para Java es la JVM o la máquina virtual. Para el Visual C++ existe además el MFC (Microsoft Foundation Clases) que hacen un poco más fácil trabajar directamente con las funciones mismas del sistema operativo (las Apis), que son funciones que se pueden usar para hacer las mismas cosas que con el .Net o la JVM, pero dependen mucho del tipo y versión del sistema operativo (los virus para Windows son básicamente muchas llamadas a las Apis, con ellas se puede ver la libreta de direcciones de Outlook, controlar el envío por red, copair en carpetas específicas del disco duro, ver el usuario actual del sistema, etc).
Como verás, las apis son otro componente reutilizable.