anchor.diff:  
   Chaque méthode "static" effectue le calcul souhaité en se basant sur un double en entrée et en sortie.
   
  -Nous allons ensuite montrer différente façons d'implémenter ce pattern en Java 8.
  +Nous allons ensuite montrer différentes façons d'implémenter ce pattern en Java 8.
   
   == a) Decorator en Java 8 avec de la composition de fonctions
   
  
positive.code:   }
  ----
  
  N'est-ce pas grandiose ? nous avons pu réecrire le pattern décorator avec très peu de ligne de code. 
  Le JDK 8 donne la possibilité de composer plusieurs fonctions entre elles via la "default" méthode "andThen". Cette méthode est proposée dans les fonctions par défaut du JDK et le DoubleUnaryOperator en fait partie.
  On démarre à partir de la classe DefaultProfitCalculator, et via "andThen" on compose ce traitement avec une autre fonction. Dans cet exemple, des appels par référence de méthode ont été privilégiés afin d'avoir un code plus concis et plus expressif "Expenses::getOperatingExpenses", mais des lambdas expression auraient également fait l'affaire "e -> Expenses.getOperatingExpenses(e)".
  
  Ainsi, il devient très simple d'ajouter ou de supprimer des decorators. Dans l'exemple ci dessous nous supprimons le decorator qui représente les dépenses exceptionnelles : 
  
  [source,java]
  ----
  
negative.code: 
  == b) Decorator en Java 8 avec l'API Stream
  
  Nous allons voir maintenant qu'il est possible d'implémenter le pattern decorator avec l'API Stream.
  Nous allons créer une classe appelée "StreamDecorator" correspondant à une enum singleton (instance unique). Cette classe contient une méthode appelée "calculateProfit" qui sera exposée au client de l'API : 
  
  [source,java]
  