Skip to content

Instantly share code, notes, and snippets.

@GravenilvecTV
Created November 16, 2024 22:03
Show Gist options
  • Save GravenilvecTV/2ac2f478f381e00b563225b0d01a0305 to your computer and use it in GitHub Desktop.
Save GravenilvecTV/2ac2f478f381e00b563225b0d01a0305 to your computer and use it in GitHub Desktop.
class UserManager:
def __init__(self):
# Simuler une base de données avec un dictionnaire
self.users = {
1: {"name": "Alice", "age": 30},
2: {"name": "Bob", "age": 25},
3: {"name": "Charlie", "age": 35}
}
def get_user_info(self, user_id):
"""Récupérer et afficher les informations d'un utilisateur."""
user = self.users.get(user_id, None)
if user:
print(f"Nom: {user['name']}, Âge: {user['age']}")
else:
print("Utilisateur non trouvé.")
def add_user(self, user_id, name, age):
"""Ajouter un nouvel utilisateur et afficher un message."""
self.users[user_id] = {"name": name, "age": age}
print(f"Utilisateur {name} ajouté avec succès!")
def run(self):
"""Méthode qui combine l'ajout d'un utilisateur et l'affichage de ses infos."""
# Ajout d'un utilisateur
self.add_user(4, "David", 28)
# Affichage des informations du nouvel utilisateur
self.get_user_info(4)
# Exécution de l'application
if __name__ == "__main__":
user_manager = UserManager()
user_manager.run()
# Partie 1: Gestion des données (Data Access Layer)
class UserData:
def __init__(self):
# Simuler une base de données avec un dictionnaire
self.users = {
1: {"name": "Alice", "age": 30},
2: {"name": "Bob", "age": 25},
3: {"name": "Charlie", "age": 35}
}
def get_user_by_id(self, user_id):
"""Récupérer un utilisateur par son identifiant."""
return self.users.get(user_id, None)
def add_user(self, user_id, name, age):
"""Ajouter un nouvel utilisateur."""
self.users[user_id] = {"name": name, "age": age}
# Partie 2: Logique métier (Business Logic Layer)
class UserService:
def __init__(self, user_data):
self.user_data = user_data
def get_user_info(self, user_id):
"""Obtenir les informations d'un utilisateur avec logique métier."""
user = self.user_data.get_user_by_id(user_id)
if user:
return f"Nom: {user['name']}, Âge: {user['age']}"
else:
return "Utilisateur non trouvé."
def add_new_user(self, user_id, name, age):
"""Ajouter un nouvel utilisateur avec une logique métier."""
self.user_data.add_user(user_id, name, age)
return f"Utilisateur {name} ajouté avec succès!"
# Partie 3: Présentation (Presentation Layer)
class UserInterface:
def __init__(self, user_service):
self.user_service = user_service
def show_user_info(self, user_id):
"""Afficher les informations de l'utilisateur."""
print(self.user_service.get_user_info(user_id))
def add_user(self, user_id, name, age):
"""Ajouter un utilisateur via l'interface."""
print(self.user_service.add_new_user(user_id, name, age))
# Partie 4: Application principale
def main():
# Initialisation des différentes couches
user_data = UserData()
user_service = UserService(user_data)
user_interface = UserInterface(user_service)
# Ajout d'un nouvel utilisateur
user_interface.add_user(4, "David", 28)
# Affichage des informations d'un utilisateur existant
user_interface.show_user_info(4)
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment