Disons que j'ai une méthode statique appelée Logger.log(), qui appelle une autre méthode statique, CurrentUser.getName(), pour obtenir des informations supplémentaires pour vous connecter:Comment facteur appel statique sur une classe
public static void log(text) {
String[] itemsToLog = { text, todaysDate, ipAddress, CurrentUser.getName() };
Maintenant, évidemment, ce n'est pas une situation idéale, en particulier avec les données statiques dans la classe CurrentUser. Mais je veux commencer à l'améliorer en réduisant les dépendances de l'enregistreur. Je préférerais que l'enregistreur n'ait aucune connaissance des concepts de niveau supérieur comme les utilisateurs. Il a juste besoin d'une liste de choses à se connecter, et ne se soucie pas de ce qu'ils sont. Donc, je veux en quelque sorte factoriser la classe CurrentUser. Mais Logger est statique, donc je ne peux pas simplement passer l'information dans son constructeur.
Quel serait un bon modèle pour factoriser des choses comme ça?