Je suis un nouvel ingénieur Android diplômé. J'ai récemment lu Effective Java et j'ai trouvé le mot-clé ** méthode de fabrique statique **.
EffectiveJava dit
Juste une méthode statique qui renvoie une instance de la classe
... Apparemment ...
Par exemple, si vous regardez l'exemple de code de la classe booléenne
public static Boolean valueOf(boolean b) {
return b ? Boolean.TRUE : Boolean.FALSE;
}
Cette méthode convertit une valeur de données de base appelée booléenne en une référence d'objet booléenne.
Normalement, pour qu'un client puisse obtenir une instance d'une classe, il est nécessaire de passer par un constructeur public, mais si vous utilisez une méthode de fabrique statique, vous pouvez obtenir une instance via une méthode statique.
À propos, bien que les noms soient similaires, ils sont différents de la méthode d'usine, qui est une sorte de modèle de conception, alors faites attention à ne pas les confondre.
Depuis que l'histoire du modèle de conception est sortie, je vais l'écrire comme un modèle d'une seule tonne.
Garantie qu'une seule instance de cette classe sera créée
Il y a un modèle de conception.
En tant que code pour réaliser cela, en Java, vous pouvez souvent voir le style d'écriture suivant.
public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton() {
}
public static Singleton getInstance() {
return singleton;
}
}
Dans ce cas, getInstance () est une méthode de fabrique statique. Même si vous ne connaissez pas la méthode de fabrique statique, beaucoup de gens connaissent le modèle singleton, donc je pense que cet exemple vous donnera une image.
Il y a aussi une convention de dénomination car si chaque personne décide du nom de la méthode autant qu'il le souhaite, il sera impossible de le distinguer des autres méthodes statiques. En général, il existe les noms de méthodes suivants.
Nom de la méthode | rôle |
---|---|
valueOf | Renvoie une instance avec la même valeur que le paramètre. Conversion de type. |
of | Nom de méthode sans valeur valueOf |
getInstance | Renvoie l'instance spécifiée par le paramètre, mais n'a pas la même valeur. Dans le cas de singleton, il ne prend aucun argument et ne renvoie qu'une seule instance. |
newInstance | Similaire à getInstance, sauf que toutes les instances renvoyées sont séparées. |
getType | Similaire à getInstance, sauf que la méthode de fabrique est dans une classe différente de la classe cible. |
newType | Similaire à newInstance, sauf que la méthode de fabrique est dans une classe différente de la classe cible. |
Si vous avez ces méthodes statiques dans votre classe, vous pouvez vous rendre compte qu'il s'agit de méthodes de fabrique statiques.
Vous pouvez également voir ces méthodes dans les classes standard (telles que Boolean ci-dessus).
Alors, qu'est-ce qui est bien d'utiliser des méthodes d'usine statiques? Ce sera long, je voudrais donc le résumer dans la partie 2. Jusqu'à ici pour cette fois
Par Joshua Brock Traduit par Yoshiki Shibata Effective Java 2nd Edition
Recommended Posts