IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez .NET Discussion :

Exemple de source pour débuter en POO [Sources]


Sujet :

Contribuez .NET

  1. #1
    Rédacteur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2002
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 608
    Points : 1 561
    Points
    1 561
    Par défaut Exemple de source pour débuter en POO
    Bonjour,

    Pour apprendre C# je viens d'écrire un premier code source sur le thème classique des formes géométriques: classe abstraite qui représente n'importe quelle forme, puis les classes dérivées rectangle, cercle, etc... Par contre il y a pas de winform.

    J'ai essayé de faire en sorte d'utiliser un maximum de principes de la POO et de choses courantes en .net, pour me familiariser avec: héritage, polymorphisme, classe abstraite, interface et implémentation de méthode explicite, exceptions, évènements, opérateur as, clonage, liste générique.

    Je sais pas si ce source peut avoir un intérêt quelconque. Si oui je peux rajouter les commentaires dans un but didactique.
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Je vois que tu n'es pas tombé dans le piège de créer une classe Carré qui hérite de Rectangle, et qui casse le principe de substitution de Liskov

    2 petites remarques, aussi bien du point de vue OOP que du point de vue des bonnes pratiques en C# :

    - Pourquoi une énumération TypeObjet ? Ca n'apporte pas grand chose, c'est redondant avec le type (la classe) qui indique déjà ce que c'est, et ça complique les évolutions ultérieures (si je veux créer une classe Pentagone, il faut que je l'ajoute à l'énumération, ce qui n'est possible que si j'ai la main sur les sources). Si c'est juste pour l'implémentation de la méthode ToString, chaque classe peut la rédéfinir à son niveau, ou alors implémenter une méthode qui indique le type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public abstract string GetTypeObjet();
     
    public override string ToString()
    {
        // return GetTypeObjet() + " " + Nom;
        // Plus propre avec String.Format :
        return string.Format("{0} {1}", GetTypeObjet(), Nom);
    }
    - Le champ Nom devrait être une propriété. Il est généralement déconseillé d'exposer des champs publics (sauf à la rigueur s'ils sont readonly, et encore...), car cela permet à du code externe de modifier l'état interne de la classe sans que celle-ci puisse le contrôler ou même le détecter.

Discussions similaires

  1. exemple de code source pour insérer une date
    Par Narouto dans le forum JSF
    Réponses: 13
    Dernier message: 11/06/2011, 15h49
  2. Source d'un programme pour débuter.
    Par ApocKalipsS dans le forum Débuter
    Réponses: 2
    Dernier message: 31/05/2010, 20h27
  3. [PHP 5.3] [POO] Conseils pour débuter en POO
    Par elcoyotos dans le forum Langage
    Réponses: 6
    Dernier message: 27/01/2009, 12h03
  4. [ZF 1.7] Exemple de cas modulaires pour débuter
    Par r-zo dans le forum MVC
    Réponses: 1
    Dernier message: 10/01/2009, 14h30
  5. Réponses: 2
    Dernier message: 26/01/2007, 18h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo