Diseño Polimórfico del Arquitecto de la Ciudad Espacial

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Bienvenido al año 2100, donde la humanidad ha alcanzado las estrellas y establecido prósperas ciudades espaciales en el cosmos. En este escenario futurista, eres un pionero Arquitecto de Ciudad Espacial con la tarea de crear soluciones innovadoras para adaptarse a las necesidades en constante evolución de estas metrópolis celestes.

Como arquitecto responsable de diseñar los sólidos bloques constructivos de una ciudad espacial, necesitarás emplear el avanzado concepto de polimorfismo. Este principio de programación te permitirá que tus creaciones interactúen y comuniquen sin problemas con varios sistemas de la ciudad espacial utilizando una interfaz común, a pesar de sus diferencias subyacentes.

Tu objetivo en este laboratorio es aprovechar el poder del polimorfismo de Python para crear código flexible y mantenible para los componentes de la infraestructura de la ciudad. A través de esto, asegurarás el crecimiento y la adaptabilidad de la ciudad durante siglos venideros. Prepárate para estar en la vanguardia del desarrollo urbano espacial, arquitecto!


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ObjectOrientedProgrammingGroup(["Object-Oriented Programming"]) python/ObjectOrientedProgrammingGroup -.-> python/polymorphism("Polymorphism") subgraph Lab Skills python/polymorphism -.-> lab-271580{{"Diseño Polimórfico del Arquitecto de la Ciudad Espacial"}} end

Comprendiendo el Polimorfismo en Python

En este paso, explorarás los conceptos básicos del polimorfismo en Python. El polimorfismo nos permite definir métodos en la clase hija con el mismo nombre que los definidos en su clase padre. Como resultado, la clase hija hereda sus propiedades y comportamientos. Sin embargo, si es necesario realizar ciertos ajustes o adiciones, el polimorfismo permite hacer cambios sin alterar la estructura de la clase padre.

Comienza creando una clase base que represente la interfaz para interactuar con diferentes módulos de sistemas de la ciudad.

Luego, agrega el siguiente contenido a tu ~/project/infrastructure.py:

## infrastructure.py
class CitySystem:
    def power_on(self):
        raise NotImplementedError("Subclass must implement this abstract method")

class TransportationSystem(CitySystem):
    def power_on(self):
        print("Transportation System is now activated.")

class WasteManagementSystem(CitySystem):
    def power_on(self):
        print("Waste Management System is now activated.")

## This function represents the city initialization sequence
def initiate_city_systems(systems):
    for system in systems:
        system.power_on()

## Let’s see polymorphism in action
if __name__ == "__main__":
    city_systems = [TransportationSystem(), WasteManagementSystem()]
    initiate_city_systems(city_systems)

Para probar que los sistemas se inician correctamente con polimorfismo, ejecuta el siguiente comando:

python3 ~/project/infrastructure.py

Deberías ver una salida que indique que tanto el Sistema de Transporte como el Sistema de Gestión de Residuos se han activado:

Transportation System is now activated.
Waste Management System is now activated.

Agregando nuevos sistemas

Ahora que ya comprendes cómo funciona el polimorfismo, es hora de expandir la funcionalidad de nuestra ciudad espacial. Tu tarea es agregar un nuevo sistema para la Asignación de Recursos sin interrumpir la base de código existente.

En el mismo archivo infrastructure.py, agrega una nueva clase llamada ResourceAllocationSystem con su propio método power_on que imprima un mensaje único cuando se activa.

class ResourceAllocationSystem(CitySystem):
    def power_on(self):
        print("Resource Allocation System is now activated.")

No olvides actualizar la matriz city_systems e incluir una instancia de la recién creada ResourceAllocationSystem, y luego probar la secuencia de inicialización. El último paso es ejecutar el script:

python3 ~/project/infrastructure.py

La siguiente información debe aparecer en tu terminal:

Transportation System is now activated.
Waste Management System is now activated.
Resource Allocation System is now activated.

Resumen

En este laboratorio, aventuramos en el dominio del Polimorfismo de Python, descubriendo su papel fundamental en la creación de estructuras de código versátiles y mantenibles para aplicaciones complejas como la infraestructura de una ciudad espacial futurista. Comenzamos con conceptos básicos, practicando al diseñar una secuencia universal de encendido para diferentes sistemas, y avanzamos hacia la expansión de las capacidades de nuestra ciudad mediante la integración sin problemas de nuevos sistemas, gracias al polimorfismo.

Al abrazar las características orientadas a objetos de Python, hemos mejorado nuestras habilidades como desarrolladores y Arquitectos de Ciudad Espacial, sentando las bases para un software modular y adaptable que resista la prueba del tiempo interestelar.