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 Discussion :

[Article] Bonnes pratiques objet en .net : Introduction aux principes SOLID [News]


Sujet :

Contribuez

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut [Article] Bonnes pratiques objet en .net : Introduction aux principes SOLID
    Dans cet article, je vais essayer de vous présenter les principes SOLID, tels que décrits dans le livre de Robert Martin, en Agile Software Development, Principles, Patterns, and Practices.

    On va voir l'intérêt de ces principes, et comment les appliquer, de façon abordable par tout le monde.

    Accéder à l'article


    N'hésitez pas à laisser vos commentaires à la suite

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    Bonjour et merci pour cet article très intéressant.
    Je viens d'envoyer le lien à 2 de mes collègues auxquels j'essayais d'expliquer ces principes il y quelques temps.

    Une petite remarque sur le code exemple du chapitre II :

    Les méthodes Save() et GetById() du WorkItemDataAccess ne devrait-elle pas être static ? Je me base là sur la façon que tu as d'appeler ce code ici:

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
               public class WorkItemFactory{     
     
                    public void Save(WorkItem item){
                        WorkItemDataAccess.Save(item.Id, item.Name);
                    }
                    public void GetWorkItemById(string id){
                        Datarow dr =  WorkItemDataAccess.GetById(id);
                        if (dr == null){
                            return null;
                        }
                        return new WorkItemData(dr);
                    }
                }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 124
    Par défaut
    Super article effectivement, qui résume bien la plupart des notions présentés sur d'autres sites. . Au passage j'aime bien la subtile référence au pattern activerecord plébiscité par les puristes RoR et que je trouve à titre personnel, parfaitement dégueulasse.
    Pour répondre à la question de papy214, moi je ne mettrais personnellement pas les méthodes en static. Eventuellement je ferais de la factory un singleton pour éviter d'avoir à l'instancier à chaque fois, mais il me semble pertinent de laisser les méthodes d'instance car :
    -> On peut imaginer que chaque factory hérite d'une interface commune de type ICRUD (pour lui permettre de gérer les opérations d'accès aux données élémentaires). Or il n'est pas possible d'hériter de méthodes statiques.
    -> On peut aussi imaginer une factory de base dont le but est le même

    a+

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    djflex68 :

    Dans mon message, je ne voulais pas dire qu'il "fallait" dans le sens obligatoire.

    Mais il me semble que la seule manière d'utiliser le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WorkItemDataAccess.Save(item.Id, item.Name);
    est que la méthode WorkItemDataAccess.Save soit une méthode de classe.
    Mais peut-être que quelque chose m'a échappé.

    C'était une simple remarque sur le code, pas sur le fond de l'article que je trouve par ailleurs très intéressant.

  5. #5
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Salut,

    Mais il me semble que la seule manière d'utiliser le code suivant:

    Code :

    WorkItemDataAccess.Save(item.Id, item.Name);

    est que la méthode WorkItemDataAccess.Save soit une méthode de classe.
    Mais peut-être que quelque chose m'a échappé.
    Non, non, bien vu

    Comme quoi, malgré toute l'attention qu'on peut y porter et les relectures successives, il reste toujours des coquilles

    Je vais essayer de le modifier dans la journée (pas accès au kit pour le moment)

    Et merci des appréciations

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 124
    Par défaut
    Ah ok autant pour moi...
    je ne pensais pas que tu faisais référence à
    WorkItemDataAccess.Save(item.Id, item.Name);
    mais plutôt à :
    public void Save(WorkItem item)
    On est donc d'accord sur le fond

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/09/2013, 17h34
  2. [Article] Bonnes pratiques objet en .net : Introduction aux principes SOLID
    Par Philippe Vialatte dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 25/02/2009, 17h47

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