Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
(Facultatif) Étendre le consommateur
Cette section facultative montre comment étendre le code de l'application consommateur pour obtenir un scénario un peu plus complexe.
Si vous voulez connaître les ordres de vente les plus importants toutes les minutes, vous pouvez modifier la classe StockStats
à trois emplacements pour accueillir cette nouvelle priorité.
Pour étendre l'application consommateur
-
Ajoutez de nouvelles variables d'instance :
// Ticker symbol of the stock that had the largest quantity of shares sold private String largestSellOrderStock; // Quantity of shares for the largest sell order trade private long largestSellOrderQuantity;
-
Ajoutez le code suivant à
addStockTrade
:if (type == TradeType.SELL) { if (largestSellOrderStock == null || trade.getQuantity() > largestSellOrderQuantity) { largestSellOrderStock = trade.getTickerSymbol(); largestSellOrderQuantity = trade.getQuantity(); } }
-
Modifiez la méthode
toString
pour imprimer les informations supplémentaires :public String toString() { return String.format( "Most popular stock being bought: %s, %d buys.%n" + "Most popular stock being sold: %s, %d sells.%n" + "Largest sell order: %d shares of %s.", getMostPopularStock(TradeType.BUY), getMostPopularStockCount(TradeType.BUY), getMostPopularStock(TradeType.SELL), getMostPopularStockCount(TradeType.SELL), largestSellOrderQuantity, largestSellOrderStock); }
Si vous exécutez l'application consommateur maintenant (n'oubliez pas d'exécuter également l'application producteur), vous devez voir une sortie similaire à la suivante :
****** Shard shardId-000000000001 stats for last 1 minute ****** Most popular stock being bought: WMT, 27 buys. Most popular stock being sold: PTR, 14 sells. Largest sell order: 996 shares of BUD. ****************************************************************