anchor.diff:    }
   ----
   
  -La méthode "calculateProfit" est appelée avec la CA et la liste des fonctions decorator séparée une virgule. Ceci a été via la paramètre de méthode suivant : "DoubleUnaryOperator... operators".
  +La méthode "calculateProfit" est appelée avec le CA et la liste des fonctions decorator séparée par une virgule (possible grace au paramètre de la méthode suivant => "DoubleUnaryOperator... operators").
   De nouveau le client de l'API dispose d'un traitement très souple, facilement modifiable et évolutif.
   
  -Un exemple sans le decorator "ExceptionalExpenses" : 
  -
  -[source,java]
  -----
  -@Test
  +Voici un exemple sans le decorator "ExceptionalExpenses" : 
  +
  +[source,java]
  +----
  +  @Test
     public void givenTurnover_whenNotComposingAllDecoratorsWithStream_thenCorrectResult() {
   
       // Given.
       final double turnover = 100000;
   
       // When.
  -    final double profit = StreamDecorator.INSTANCE.calculateProfit(turnover,
  -                             new DefaultProfitCalculator(), Expenses::getOperatingExpenses, Expenses::getDeductibleTaxes,
  -                             Expenses::getRemuneration);
  +    final double profit = StreamDecorator.INSTANCE.calculateProfit(turnover
  +                             , new DefaultProfitCalculator()
  +                             , Expenses::getOperatingExpenses
  +                             , Expenses::getDeductibleTaxes
  +                             , Expenses::getRemuneration);
   
       // Then.
       assertThat(profit).isNotNull().isEqualTo(34600);
  
positive.code:   private final Function<T, T> function;
  ----
  
  Un constructeur privé permet prend en paramètre les 2 éléments expliqués précédemment (l'aspect privé permet d'empecher l'instantiation en dehors de la classe) : 
  
  [source,java]
  ----
  
negative.code: }
  ----
  
  Une "static factory method" est exposée au client de l'API pour initialiser la classe avec un nom parlant. Cette méthode s'appelle "from" et prend en paramètre la valeur qui servira de base de calcul, dans notre cas le CA. 
  Un contrôle est effectué sur la valeur afin de renvoyer une "runtime exception" si elle est nulle. Le constructeur de la classe est appelé avec cette valeur et une fonction initiale vide (ainsi le paramètre global "function" de la classe ne sera pas nul et permettra d'éviter des nullPointerException).
  
  [source,java]
  ----
  