16 - Sugerencias para el desarrollo de programas usando Programación Orientada a Objetos

Lección 16 del curso Python Nivel Avanzado.

Introducción

En la lección anterior vimos en qué consiste y cómo implementar el polimorfismo en Python que junto con todo lo que hemos visto hasta ahora nos da las herramientas esenciales para desarrollar programas sofisticados usando la Programación Orientada a Objetos.

En esta lección aterrizaremos varias de estas herramientas y conceptos aprendidos hasta el momento en un breve listado de lo que considero son las sugerencias a tener en cuenta al momento de desarrollar programas con Programación Orientada a Objetos en Python.

Contenido exclusivo suscriptores

Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Sugerencias a tener en cuenta para el desarrollo de programas con Programación Orientada a Objetos

Aunque no es un listado exhaustivo considero que las siguientes son tal vez las sugerencias esenciales a tener en cuenta siempre que implementemos nuestros programas usando este enfoque.

Veamos entonces una a una en detalle.

1. ¿Realmente se requiere la POO?

En primer lugar debemos determinar si la Programación Orientada a Objetos se puede usar o no en el problema que queremos resolver, o si basta con la programación procedimental o funcional.

2. Planear antes de programar

Debemos determinar cuáles serán las clases (o tipos de objetos) que tendremos en nuestro programa y para cada uno de ellos debemos determinar los métodos y atributos necesarios, si serán tratados como públicos o privados y si tendremos algunas clases base y otras subclases.

Es decir, al desarrollar un programa usando la Programación Orientada a Objetos primero debemos diseñar todas las clases (en papel, si es necesario) y luego sí llevar a cabo la implementación.

3. Usar nombres adecuados

Al momento de definir el nombre de la clase o el de sus atributos o métodos es importante que usemos nombres que sean lo suficientemente descriptivos.

4. Definir los atributos en el constructor

Siempre al crear una clase se sugiere definir los atributos usando el método init. De esta forma nos aseguramos no sólo de que la clase tiene unos atributos asociados y de que al instanciarla tendremos disponibles estos atributos, sino de que siempre los encontraremos en el mismo lugar: en el constructor de la clase.

5. Usar el docstring

Para permitir estos cambios a futuro siempre es recomendable que cada clase y método asociado tengan un docstring que fácilmente nos permita entender la función que cumple, facilitando así posibles modificaciones más adelante.

6. Decidir qué es público y qué es privado

Recordemos que en términos generales todos los métodos y atributos de una clase en Python son de carácter público, pero que si lo deseamos podemos usar la convención del guión de piso simple o doble para dar a entender que un cierto método o atributo debería ser tratado como privado.

Tengamos esta convención en cuenta al momento de diseñar nuestras clases para que al implementarla protejamos de cierta forma los métodos y atributos que no deseamos que sean fácilmente accesibles desde fuera de la clase.

7. Usar setters y getters para acceder a atributos “privados”

Esto está muy relacionado con el punto anterior: si decidimos hacer que un atributo sea manejado como privado, pero en nuestro programa debemos acceder al mismo de manera indirecta, hagamos uso de los setters y getters que vimos en una lección anterior para implementar dicho acceso de forma correcta.

Contenido exclusivo suscriptores

Recuerda suscribirte para acceder al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Conclusión

Muy bien estas fueron algunas de las que considero las principales sugerencias a tener en cuenta al momento de implementar nuestras aplicaciones usando la Programación Orientada a Objetos, aunque probablemente a medida que vayan adquiriendo más experiencia encontrarán otras que también les resultarán útiles.

Así que ya estamos listos para entrar en la última parte del curso, el proyecto final, donde implementaremos un juego de cartas con Programación Orientada a Objetos con lo que podremos reforzar muchas de las herramientas aprendidas hasta el momento.

En particular en la próxima lección comenzaremos definiendo las [características de nuestro juego de cartas y los criterios de diseño de esta aplicación].

Ver todas las lecciones de este curso