Design pattern: Façade

Objectif: Simplifie l’interface d’une ou plusieurs classes Justification Problème Lorsqu’une interface doit être consommée par une classe cliente, il est courant de vouloir simplifier cette interface: – pour cacher la complexité de l’implémentation interne et présenter une interface simple à utiliser, – simplifier l’appel à beaucoup d’objets internes en ne proposant qu’une interface unique, –…

Continuer à lire

Design pattern: Adapter

Objectif: Convertir l’interface d’une ou plusieurs classes pour qu’elle soit adaptée à un ou plusieurs clients. Justifications Problèmes Le besoin de présenter différemment un objet à une autre classe qui le consomme peut se justifier par plusieurs raisons: – On veut présenter un objet plus adapté aux besoins de la classe cliente, de façon à…

Continuer à lire

Design pattern: Visiteur

Objectif: Permettre d’appliquer des comportements spécifiques à un ou plusieurs objets et être sûr que tous les types d’objets sont pris en compte Justification Problèmes On possède une liste hétérogère d’objets, par exemple une liste de véhicules: voiture, moto, etc… On souhaite appliquer des comportements sur ces objets comme: – "ajouter des passagers", – "ajouter…

Continuer à lire

Design pattern: Décorateur

Objectif: Rajouter dynamiquement une ou plusieurs compétences à une classe sans en modifier l’implémentation. Justification Problèmes On souhaite ajouter un ou plusieurs comportements à une classe déjà implémentée. La méthode la plus simple est d’intervenir dans cette classe et de rajouter les comportements voulus directement. Cependant plusieurs raisons peuvent motiver le choix de ne pas…

Continuer à lire

Injection de dépendances en utilisant Unity en 10 min

L’intérêt de l’injection de dépendances est de permettre: – une meilleure maintenabilité, – de mettre en place plus facilement une méthode TDD (Test Driven Development), – d’être plus flexible (plus facile de s’adapter à une nouvelle implémentation), – d’être plus extensible (ajout plus facile de nouvelles fonctionnalités), – supporter le "late binding" (inclure des modules…

Continuer à lire

Principe de développement orienté-objet SOLID

L’acronyme signifie: – Single responsability principle (SRP°: responsabilité unique, – Open/close principle (OCP): principe ouvert/fermé, – Liskov substitution principle (LSP): substitution de Liskov, – Interface segragation principle (ISP): ségrégation des interfaces, – Dependency inversion principle (DIP): inversion des dépendances. Responsabilité unique Une classe doit avoir une et seulement une seule raison de changer. Principe ouvert/fermé…

Continuer à lire

Aide-mémoire SQL Oracle

Requêtage INSERT, UPDATE, DELETE INSERT Exemple 1: INSERT INTO Table(nom colonnes) values (valeurs) Exemple 2: INSERT INTO Table(nom colonnes) SELECT colonnes FROM Table2 WHERE … Remarque: Possible d’utiliser le mot clé EXISTS INSERT INTO clients (client_id, client_name, client_type) SELECT supplier_id, supplier_name, ‘advertising’ FROM suppliers WHERE not exists (select * from clients where clients.client_id = suppliers.supplier_id);…

Continuer à lire

Regex en .NET en 5 min

Les regex permettent: Vérifier la syntaxe, Remplacer une partie d’une chaîne de caractères, Découper une chaîne. Une regex se définit par une suite de motifs décrivant entièrement ou en partie le contenu. Le contenu peut être décrit en définissant: La position du motif Le type du motif: en utilisant une syntaxe explicite ou des raccourcis….

Continuer à lire