PATRONS DE PROGRAMACIÓ

PATRÓ MODEL VISTES CONTROL
Existeixen patrons de programació que permeten estructurar en conceptes diferents dins d’un mateix programa. Així, per exemple, el model view controler ens separa en tres parts que col·laboren entre elles. Així un programador podrà manipular cada una de les parts de manera independent.
1. Model – Aquest nivell es considera el nivell més baix en comparació amb la vista i el controlador. Representa principalment les dades per a l’usuari i defineix l’emmagatzematge de tots els objectes de dades de l’aplicació. També conté la lògica de l’aplicació.
2. Vistes – Aquest nivell està associat principalment a la interfície d’usuari (UI) i s’utilitza per proporcionar la representació visual del model MVC. En termes més senzills, aquest nivell tracta de mostrar la sortida real a l’usuari. També gestiona la comunicació entre l’usuari (entrades, peticions, etc.) i el controlador.
3. Controlador – Aquest nivell té cura del gestor de sol·licituds. El controlador completa el cicle de prendre la sortida de l’usuari, convertint-la en missatges desitjats.
https://www.geeksforgeeks.org/benefit-of-using-mvc/
CODI “CARRERA D’ANIMALS”
EXERCICIS:
- Al programa “CARRERA ANIMALS” canvia tots els animals i colors, comprova que mostri el nom del guanyador a la finalització. En quina funció del programa s’han fet els canvis?
- En quina funció del codi mostra el nom del guanyador?
- Quina instrucció fa caminar cada animal?, quines funcions crida el programa per fer moure cada participant?
- En quina llista estan els animals, quines funcions l’empren.
- Com funciona el model MVC.
ALTRES TIPUS D’ANIMALS
Usant la propietat d’HERÈNCIA poden crear diferents tipus d’animals sense duplicar codi.
class Mamifer(Animal):
def __init__(self, color, y_position, name, speed):
super().__init__(color, y_position, name)
self.speed = speed
def move(self):
self.x += random.randint(1, self.speed)
class Rapinaire(Animal):
def __init__(self, color, y_position, name, glide_factor):
super().__init__(color, y_position, name)
self.glide_factor = glide_factor
def move(self):
self.x += random.randint(3, 7) + self.glide_factor # Els rapinyaires es desplacen amb fluïdesa
class Peix(Animal):
def __init__(self, color, y_position, name, water_type):
super().__init__(color, y_position, name)
self.water_type = water_type
def move(self):
self.x += random.randint(2, 6) # Peixos poden ser més ràpids en l'aigua
Exercicis sobre Classes i Objectes
Els següents exercicis estan basats en el codi d’una cursa d’animals amb Python i Pygame. Fes servir aquests exercicis per entendre millor els conceptes de programació orientada a objectes.
Exercici 1: Creació d’una Classe
Explica què és una classe i crea una classe nova anomenada Vehicle
amb atributs bàsics com marca i velocitat.
Exercici 2: Creació d’Objectes
Utilitzant la classe Animal
del codi, crea tres objectes diferents amb diferents colors i posicions.
Exercici 3: Mètodes d’una Classe
Modifica la classe Animal
per afegir-hi un nou mètode anomenat reset_position
que torni l’animal a la seva posició inicial.
Exercici 4: Constructors
Explica què fa el constructor __init__
i per què és necessari en una classe.
Exercici 5: Modificació d’Atributs
Canvia el color d’un objecte Animal
després de la seva creació i comprova el canvi.
Exercici 6: Herència
Crea una nova classe FastAnimal
que hereti de Animal
i modifiqui el seu moviment perquè sigui més ràpid.
Exercici 7: Sobreescriptura de Mètodes
Modifica la classe FastAnimal
per sobreescriure el mètode move
i fes que es mogui més ràpid que un Animal
normal.
Exercici 8: Llistes d’Objectes
Fes una llista de cinc objectes Animal
i recorre-la per fer-los moure tots.
Exercici 9: Control de Flux
Fes que la cursa es repeteixi fins que tots els animals hagin arribat a la meta.
Exercici 10: Entrada de l’Usuari
Modifica el codi per permetre que l’usuari introdueixi el nombre d’animals que participen a la cursa.