[JAVA] Méthode d'usine statique partie 1

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 **.

méthode d'usine 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.

Méthode de fabrique statique en singleton

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.

Nom général de la méthode

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).

mérite

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

référence

Par Joshua Brock Traduit par Yoshiki Shibata Effective Java 2nd Edition

Recommended Posts

Méthode d'usine statique partie 1
Modèle de méthode d'usine
Modèle de méthode d'usine
Modèle de conception ~ Méthode d'usine ~
Sortie sur la méthode Partie 1
20 Correspond aux appels de méthode statiques
Aucune erreur de méthode statique getFont
Avantages de la méthode statique Java
Introduction aux modèles de conception (méthode d'usine)
statique
Modèle de conception Java pour débutant (modèle de méthode d'usine)
Rails 5 Lecture de code Partie 1 ~ Nouvelle méthode ActiveRecord ~