POURQUOI CE BLOG, POUR QUI ?


POURQUOI CE BLOG, POUR QUI ?
Ce Blog s'adresse à tous ceux qui sont passionnés par les sciences informatiques , Professionnels,Etudiants,Amateurs ...
Les sujets exposés dans la suite se rapporteront essentiellement sur l'analyse informatique,la programmation,le développement ainsi que à l'architecture IT.
QUI SUIS JE ?
Je suis Kangulungu Lubilanji, Consultant-Freelance sur les technologies .NET,C#,ASP.NET ... Contactez moi pour plus d'informations.

Design pattern : 5.Le Pattern Singleton


5.Le Pattern Singleton
Description: 
Ce pattern a pour but d'assurer qu'une classe ne possède qu'une seule instance et de fournir une méthode de classe unique retournant cette instance .
Exemple:
Dans un système où un objet de type liste doit contenir des objets de type quelconque, ou un système nécessitant une connexion unique à une base de données à travers un objet.  
But:
Assurer la création d'une seule instance d'un objet de classe
Solution: 
On implémente une fonction static chargée de tester et d'initialiser l'attribut unique (de type static aussi) .
Avantages:
- On ne multiplie pas les instances d'un objets.
Diagramme de classes:
La structure générique du pattern.

Participants:
- La classe Singleton qui offre l'accès à l'unique instance par sa méthode Instance.
Collaborations:
Chaque client de la classe Singleton accède à l'unique instance par la méthode de classe Instance. Il ne peut pas créer de nouvelles instances en utilisant l'opérateur habituel d'intanciation (opérateur New ) qui est bloqué.
Domaines d'utilisation:
- Il ne doit y avoir qu'une seule instance d'une classe; 
- Cette instance ne doit être accéssible qu'au travers d'une méthode de classe.

Design pattern : 4.Le Pattern Prototype

4.Le Pattern Prototype
Description: 
Le but de ce pattern est la création de nouveaux objets par duplication d'objets existants appelés prototypes qui disposent de la capacité de clonage.
Exemple:
Lorsqu'un système veut pouvoir créer une liste d'objets. Pour chaque type d'objet il y a une classe correspondante.Le système se servira d'un modèle définissant les différents objets  pouvant figurer dans la liste.
Une fois le modèle de liste créé le système va cloner le modèle pour créer la vrai liste avec les données adéquates.  
But:
Créer des objets par clonage en se servant de prototypes(modèles) de création existant.
Solution: 
On introduit une classe abstraite dont les instances aurons la capacités de clonage.
Avantages:
- La définition de ce que le client va pouvoir exploiter se fait au niveau du ClientModel.  
Diagramme de classes:
Le pattern Prototype en détail.

La structure générique du pattern.


Participants:
- Client(ClientAbstrait,ClientConcretModel,ClientConcretModel) est la classe composée d'un ensemble d'objets appelés prototype, instances de la classe abstraite PrototypeAbstrait. La classe Client a besoin de dupliquer ces prototypes sans avoir à connaître ni la structure interne de PrototypeAbstrait ni sa hiérarchie de sous-classes.
- Prototype (PrototypeAbstrait) est une classe abstraite d'objets capables de se dupliquer eux-mêmes. Elle introduit la signature de la méthode duplique.
PrototypeConcret1,PrototypeConcret2.. sont les sous-classes concrètes de prototype qui définissent complètement un prototype et en implantant la méthode duplique .
Collaborations:
Le client demande à un ou plusieurs prototypes de se dupliquer eux-mêmes.
Domaines d'utilisation:
- Un système d'objets doit créer des instances de classes chargées dynamiquement. 
- Le système d'objets doit rester simple et ne pas inclure une hiérarchie parallèle de fabrique.

Design pattern : 3.Le Pattern Factory Method

3.Le Pattern Factory Method
Description: 
Le but du pattern Factory Method est d'introduire une méthode abstraite de création d'un objet en reportant aux sous-classes concrètes la création effective.
Exemple:
Lorsqu'un système veut pouvoir créer différents type d'objets, une méthode abstraite(Factory Method) est introduite, en fonction de la nature du client appelant, cette méthode va instancier la sous-classe correspondante.
But:
Pourvoir déclarer un seul type (abstrait) et instancier différents types concrets héritant du type abstrait.
Solution: 
On introduit une classe abstraite ayant une méthode abstraite dont le client va se servir pour instancier les sous-classes concrètes.
Avantages:
- La méthode abstraite connait la classe concrète à instancier.  
- L'objet Client ne doit pas se préoccuper des différences d'implantation.  
Diagramme de classes:
Le pattern Factory Method appliqué à des clients et à leurs produits

La structure générique du pattern.


Participants:
- CreateurAbstrait(Client) est la classe abstraite qui introduit la signature de la méthode qui invoquet la méthode de fabrique.
- CreateurConcret  (Client1,Client2,..) est la classe concrète implantant les méthodes de fabrique. Il peut exister plusieurs créateurs concrets.
Produit est la classe abstraite décrivant les propriétés communes des produits.
ProduitConcret est la classe concrète décrivant un produit.
Collaborations:
Les méthodes concrètes de la classe CreateurAbstrait se basent sur l'implantation de la méthode de fabrique dans les sous-classes. Cette implantation crée une instance de la sous-classe adéquate de Produit.
Domaines d'utilisation:
- Une classe ne connaît que les classes abstraites des objets avec lesquels elle possède des relations; 
Une classe veut transmettre à ses sous-classes les choix d’instanciation en profitant du mécanisme de polymorphisme.

Design pattern : 2.Le Pattern Builder

2.Le Pattern Builder
Description: 
Le but pattern Builder est d'abstraire la construction d'objets complexes de leur implantation de sorte qu'un client puisse créer ces objets complexes sans devoir se préoccuper des différentes d’implantation.
Exemple:
Lorsqu'un système veut créer une liasse (une liste donc) de documents comprenant notamment différents types  de documents A,B,C... regroupés dans un même objet.
But: 
Rendre la classe Client indépendante de l'ensemble (architecture), abstraire la construction d'objets complexes de leur implantation.
Solution: 
- On introduit une classe abstraite ConstructeurAbstrait contenant les signatures des méthodes permettant d'ajouter chaque type de document. 
- On introduit une classe abstraite Liasse contenant  un attribut de type liste qui permet de stocker les différents types d'objets, cette classe contient la signature d'une méthode permettant d'ajouter des objets dans la  liste.
Avantages:
- L'objet Client ne doit pas se préoccuper des différences d'implantation.  
Diagramme de classes:

Participants:
ConstructeurAbstrait est la classe introduisant les signatures des méthodes construisant les différentes parties du produit ainsi que la signature de la méthode permettant d'obtenir le produit, une fois celui-ci construit.
ConstructeurConcret  est la classe concrète implantant les méthodes du constructeur abstrait.
Produit  est la classe définissant le produit.Elle peut être abstraite et posséder plusieurs sous-classe concrètes en cas d'implantations différentes.
- Client est la classe chargée de construire le produit au travers de l'interface du constructeur abstrait.
Collaborations:
Le client crée un constructeur concret en fonction du format souhaité et reçois le résultat.
Domaines d'utilisation:
- Un client a besoin de construire des objets complexes sans connaître leur implantation .
- Un client a besoin de construire des objets complexes ayant plusieurs représentations ou implantations