Design Pattern : Programmation chainée

Un objectif que je me donne en développant du code c’est de limiter le nombre de caractères que je dois taper pour réaliser ce que j’ai à livrer.

Bref, il faut tapper le moins de code possible. Ce qui rejoint parfaitement l’objectif du Spartan Programming et facilite par le fait même la maintenance et facilite la compréhension du code.

Voyons la situation classique d’instanciation d’objet :

Ce que je n’aime pas dans ce code c’est la répétition de la variable smtpServerConfiguration. Tout ce que cela fait, c’est d’ajouter du bruit autour du but actuel du code.

Voilà qu’entre en jeu la désignation chaînée (Fluent Interfaces). Le but de la désignation chaînée est de pouvoir faciliter l’écriture de code en chaînant l’appel des fonctions.

De cette façon :

La conception d’une classe permettant ce genre d’appels est très simple et sa mise en place est liée étroitement à la programmation orientée objet.

Pour ceux d’entre-vous qui font du C#, ce genre d’appels doit vous sembler familier. Il s’agit en effet d’un des deux modes de requête possible avec LINQ. La désignation chaînée a été popularisée avec la venue de LINQ dans le monde .NET où il est possible du code comme celui-ci :

Advertisements

2 avis sur « Design Pattern : Programmation chainée »

  1. Cedric Sarrazin dit :

    Bel article !
    Tu pourrais même optimiser ta dernière requête LINQ comme ceci:

    var result = session
    .Query()
    .First(p => p.Id == wineId))

    • Pascal Paradis dit :

      En effet!

      Mon objectif était, cependant, plus de démontrer de quoi ça avait l’air dans le concret :)

Laisser un commentaire

Entrer les renseignements ci-dessous ou cliquer sur une icône pour ouvrir une session :

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l’aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment ce contenu :