/* Page prose (fr) */
"SubclassingOperation" = "# Créer une sous-classe de Operation: du travail avec entrées et sorties\n\n`BlockOperation` est pratique, mais tout son travail vit à l'intérieur d'une seule closure. La vraie puissance des Operations apparaît quand tu crées ta **propre** sous-classe, parce qu'alors l'opération peut contenir des **entrées** et exposer des **sorties** comme propriétés, et tu peux la réutiliser comme n'importe quel autre type.\n\nTu crées une sous-classe de `Operation` et tu redéfinis une méthode: **`main()`**. Quoi que fasse `main()`, c'est *ça* le travail. Pour ce chapitre, nous le gardons **synchrone**: `main()` s'exécute de haut en bas et l'opération est terminée au moment où `main()` retourne.\n\nVoici un `PosterJob` pour l'imprimerie. Il prend un titre et un nombre de copies comme entrées, et produit une chaîne d'affiche rendue comme sa sortie.";
"SubclassingOperation-2" = "**Observe l'exécution:** après que `start()` retourne, `main()` s'est déjà exécutée, donc `renderedPoster` contient le résultat: une ligne d'astérisques, puis `Jazz Night x50`, puis une autre ligne d'astérisques.\n\nRemarque la forme: **les entrées entrent par `init`, le travail se passe dans `main()`, et le résultat sort par une propriété.** C'est une unité de travail réutilisable et inspectable, quelque chose qu'une closure toute nue ne peut pas te donner.\n\n* callout(Essaie): Ajoute `print(Thread.isMainThread)` comme première ligne de `main()`. Avec cet appel direct à `.start()`, rapporte-t-il `true` ou `false`?\n\n[Précédent](@previous)  |  page 6 sur 9  |  [Suivant: Exécuter ta sous-classe sur une file](@next)";
