XXP

mai 2016

lun. mar. mer. jeu. ven. sam. dim.
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

« Fluent Interface : exercice | Accueil | Fluent Interface : exercice »

17 juillet 2008

Fluent Interface : exercice

Suite à ce billet, voici ma première expérience (solutionVS 2008) avec les Fluent Interfaces. C'est une implémentation de l'exercice proposé par Michael Feathers, qui consiste à exposer les entiers sous forme littérale.

Exercice suffisant pour constater qu'il vaut mieux s'y aventurer avec méthode, ce qui n'a pas été mon cas. Dans l'implémentation que je vous propose, on peut aller jusqu'aux milliers, en écrivant des choses comme :

Assert.AreEqual(9210, FluentNumber.Nine.Thousand.Two.Hundred.And.Ten.ToInt());
Assert.AreEqual(92713, FluentNumber.Ninety.Two.Thousand.Seven.Hundred.And.Thirteen.ToInt());
Assert.AreEqual(700000, FluentNumber.Seven.Hundred.Thousand.ToInt());
Assert.AreEqual(777000, FluentNumber.Seven.Hundred.And.Seventy.Seven.Thousand.ToInt());
Assert.AreEqual(712713, FluentNumber.Seven.Hundred.And.Twelve.Thousand.Seven.Hundred.And.Thirteen.ToInt());
Assert.AreEqual(218001, FluentNumber.Two.Hundred.And.Eighteen.Thousand.One.ToInt());
Fluent_interface_auto_completion

Intellisense : pas trop mal, les 'teens' (thirteen, forteen...) n'apparaissent pas. Mais Hundred ne devrait pas apparaitre.

L'auto-completion fonctionne assez bien (cf. screenshot). Mais on peut quand même écrire des choses aberrantes :

FluentNumber.One.Thousand.One.Thousand.ToInt();

Pas facile à corriger... Etes-vous tenté par le défi ?


FluentNumbers.zip (VS 2008)

TrackBack

URL TrackBack de cette note:
http://www.typepad.com/services/trackback/6a00d8341c871f53ef00e553b3b2328834

Listed below are links to weblogs that reference Fluent Interface : exercice:

Commentaires

L'utilisation des commentaires est désactivée pour cette note.