Structure du projet
Fait partie de la section Programmation Orientée Objet du Journey C# de Coddy — leçon 62 sur 70.
Défi
FacileMettons en place les bases de votre projet de Système de Bibliothèque ! Vous allez créer la structure de fichiers de base qui deviendra une application complète de gestion de bibliothèque au fil des prochaines leçons.
Vous organiserez votre code sur quatre fichiers, chacun ayant une responsabilité spécifique :
Book.cs: Ce fichier contiendra votre modèle Book. Pour l'instant, créez une classeBookdans l'espace de nomsLibrarySystemavec trois propriétés auto-implémentées :Title(string),Author(string), etIsAvailable(bool, avectruepar défaut). Ajoutez un constructeur qui prend le titre et l'auteur comme paramètres.User.cs: Ce fichier contiendra votre modèle User. Créez une classeUserdans le même espace de noms avec deux propriétés :Name(string) etMemberId(int). Incluez un constructeur qui accepte les deux valeurs.Library.cs: C'est ici que résidera votre logique principale. Créez une classeLibraryavec une propriétéName(string) et un constructeur pour la définir. Ajoutez une méthode appeléeGetInfo()qui retourne une chaîne de caractères au format"{Name} Library System Initialized".Program.cs: Rassemblez tout ici. C'est votre point d'entrée où vous créerez des instances de vos classes et vérifierez que la structure fonctionne correctement.
Vous recevrez trois entrées :
- Le nom de la bibliothèque
- Une entrée de livre au format
title|author - Une entrée d'utilisateur au format
name|memberId
Créez une instance de Library avec le nom donné, un Book avec le titre et l'auteur fournis, et un User avec le nom et l'ID de membre fournis. Imprimez ensuite trois lignes :
- Le résultat de l'appel à
GetInfo()sur votre bibliothèque - Les informations du livre au format
Book: {Title} by {Author} - Available: {IsAvailable} - Les informations de l'utilisateur au format
User: {Name} (ID: {MemberId})
Par exemple, si les entrées sont :
City Central
The Great Gatsby|F. Scott Fitzgerald
Alice Johnson|1001La sortie devrait être :
City Central Library System Initialized
Book: The Great Gatsby by F. Scott Fitzgerald - Available: True
User: Alice Johnson (ID: 1001)Cette structure suit le Principe de Responsabilité Unique (Single Responsibility Principle) - chaque fichier gère une préoccupation spécifique. Dans les prochaines leçons, vous enrichirez ces classes avec une logique d'emprunt, des fonctionnalités de recherche et une interface console complète !
Essayez vous-même
using System;
namespace LibrarySystem
{
class Program
{
public static void Main(string[] args)
{
// Lire les entrées
string libraryName = Console.ReadLine();
string bookInput = Console.ReadLine();
string userInput = Console.ReadLine();
// Analyser l'entrée du livre (format : title|author)
string[] bookParts = bookInput.Split('|');
string bookTitle = bookParts[0];
string bookAuthor = bookParts[1];
// Analyser l'entrée de l'utilisateur (format : name|memberId)
string[] userParts = userInput.Split('|');
string userName = userParts[0];
int memberId = Convert.ToInt32(userParts[1]);
// TODO: Créer une instance de Library avec le library name
// TODO: Créer une instance de Book avec le title et l'author
// TODO: Créer une instance de User avec le name et le member ID
// TODO: Afficher les informations de la bibliothèque en utilisant GetInfo()
// TODO: Afficher les informations du livre au format : Book: {Title} by {Author} - Available: {IsAvailable}
// TODO: Afficher les informations de l'utilisateur au format : User: {Name} (ID: {MemberId})
}
}
}
Toutes les leçons de Programmation Orientée Objet
1Fondamentaux de la POO
Fichiers externesEspaces de noms et directivesIntro aux classes et objetsLe mot-clé 'this'Méthodes et paramètresChamps vs PropriétésConstructeursInitialiseurs d'objetsRécapitulatif - Calculatrice simple4Héritage
Syntaxe de base de l'héritage (:)Le mot-clé 'base'Mots-clés Virtual & OverrideClasses scelléesLa classe de base 'object'Récapitulatif - Hiérarchie des employés7Fonctionnalités avancées
Surcharge d'opérateursIndexeurs (this[])Redéfinition de ToString()Méthodes d'extensionRécapitulatif - Liste personnalisée10Patrons de conception - Partie 1
Introduction aux patrons de conceptionSingleton Thread-SafePatron FabriquePatron Observateur (Événements)Patron Stratégie2Propriétés et membres statiques
Propriétés auto-implémentéesPropriétés en lecture/écriture seuleChamps et méthodes statiquesClasses statiquesMembres à corps d'expression5Polymorphisme & Interfaces
Polymorphisme : Compilation vs ExécutionInterface vs Classe AbstraiteInterfaces MultiplesInterfaces ExplicitesUpcasting & DowncastingRécapitulatif - Calculateur de Formes8Concepts avancés de la POO
Composition plutôt qu'héritageGénériques (Classes et Méthodes)Délégués et ÉvénementsAttributs et RéflexionIDisposable et l'instruction usingBases de l'Injection de Dépendances11Patrons de conception, Partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Méthode TemplatePatron ÉtatPatron Composite3Architecture des classes
Données d'instance vs statiquesMots-clés 'readonly' & 'const'Champs de supportRécapitulatif - Gestionnaire de compte bancaire6Encapsulation
Modificateurs d'accèsPropriétés pour l'encapsulationImplémentation du masquage de donnéesPatterns d'immuabilitéRécapitulatif - Dossiers d'étudiants12Projet : Système de gestion de bibliothèque
Structure du projetModèles Livre et Utilisateur