Dans OOP tels que C # et Java Si je devais créer une classe pour faire toutes les manipulations de chaîne, je sais qu'il est préférable de faire toute la fonction statique. Cependant, lorsque je dois appeler ces fonctions plusieurs fois, lequel sera une meilleure option (dans le contexte de l'utilisation de moins de ressources):
Création d'un objet une fois seulement et appelez la fonction à l'aide de cet objet. p>
StringManipulation.reverse("something"); StringManipulation.addPadding("something"); StringManipulation.addPeriod("something");
3 Réponses :
Je crois que cela sera efficace créer une instance qui l'obtiendra. p> p>
Qu'est-ce qui te fait penser?
Le problème est que toute la fonction nécessiterait de renvoyer un objet StringManipulation et non une chaîne directement, exigeant une .tostring () pour obtenir le résultat
Vous devez créer un objet si vous avez besoin d'une initialisation, comme peut-être obtenir des valeurs ou des paramètres d'une source de données.
Le statique est le moyen d'aller dans votre exemple car ils sont une fonction atomique qui retourne toujours le même résultat Le contexte (apatride) p>
Cependant, en C # (je ne sais pas en Java), il existe une meilleure façon: méthodes d'extension. Fondamentalement, vous ajouterez une méthode à l'objet String qui permettra de les appeler directement sur l'objet String et, si l'objet de retour YOR est également une chaîne, la chaîne si vous devez: P>
public static string reverse(this string str) { // Code to reverse your string return result; } ......... "something".reverse().addPadding()
Les différences de performance des deux options sont négligeables. Mais la principale différence est dans l'utilisation des méthodes. P>
Si vous avez besoin d'une méthode pour effectuer des tâches générales indépendantes des objets de classe, vous envisagerez des méthodes statiques dans votre conception. sinon pour les tâches dépendantes de l'objet, vous devez prendre en compte les méthodes d'instance. P>
J'avais doté pour le second car il souligne le lecteur que la fonction ne nécessite pas d'instance d'objet.
c-sharpcorner.com / uploadfile / abhikumarvatsa / ...
Cette réponse peut vous aider: Stackoverflow.com/ Questions / 1496629 / ...
Étant donné que les chaînes sont immuables, vous allez soit via la méthode de l'objet ou la méthode statique, un nouvel objet à chaîne sera créé. Les deux ressources doivent être identiques.