J'ai vu deux pratiques générales pour instancier un nouveau Fragment dans une application :
Fragment newFragment = new MyFragment();
y
Fragment newFragment = MyFragment.newInstance();
La deuxième option fait appel à une méthode statique newInstance()
y généralement contient la méthode suivante.
public static Fragment newInstance()
{
MyFragment myFragment = new MyFragment();
return myFragment;
}
Au début, je pensais que le principal avantage était le fait que je pouvais surcharger la méthode newInstance() afin de donner de la flexibilité lors de la création de nouvelles instances d'un Fragment - mais je pouvais aussi le faire en créant un constructeur surchargé pour le Fragment.
J'ai raté quelque chose ?
Quels sont les avantages d'une approche par rapport à une autre ? Ou s'agit-il simplement d'une bonne pratique ?
0 votes
Lorsqu'il y a des paramètres, il n'y a pas de choix, et cette question est largement traitée ici. Cependant, la question reste posée pour la construction sans argument du fragment.
1 votes
Après avoir appris le factory pattern et comment une classe appelante qui n'instancie pas elle-même un objet aide à les découpler, j'ai pensé que ce serait un point fort pour la méthode newInstance(). Ai-je tort ? Je n'ai pas vu cet argument spécifique parlé comme un avantage.