Je sais que dans Java, il est courant d'utiliser "GET" comme préfixe à une méthode accessive. Je me demandais ce que la raison em> pour cela est. Est-ce uniquement purement capable de prédire ce qu'il va de retour? P>
Pour clarifier: Dans certaines classes Java (par exemple, Merci pour votre temps. P>
EDIT: C'est bien de voir que je ne suis pas seul à la confusion et à la taille des variables de taille et de longueur p> String code>) Une longueur de longueur similaire à une variable peut être accessible en appelant "Longueur ()" plutôt que "
taille () code>". Pourquoi ces méthodes sont-elles écrites comme ceci, mais d'autres comme "
getomevariable () code>"? P>
6 Réponses :
'GET' PREFIX (ou 'ou' est 'pour les méthodes de retour des booléens) fait partie de JavaBean A > Spécification utilisée dans tout le Java, mais surtout des vues de Web UI. P>
longueur () et taille () sont des artefacts historiques de l'époque pré-javabean; De nombreux développeurs d'interface utilisateur ont déploré le fait que la collection ait une méthode code> () code> au lieu de getise () code> p>
Donc, vous devriez toujours utiliser obtenir un préfixe sauf si i> en utilisant une variable une telle taille ()? Mais pourquoi?
Non, vous devez utiliser obtenir code> préfixe ou (éventuellement)
est code> préfixe pour booléens si vous souhaitez que votre classe soit conforme à la spécification JavaBean.
Collection.Size () Code> Existé avant l'introduction du concept Javabean et qu'il reste là pour des raisons de compatibilité à l'envers - ce n'est pas l'exemple à suivre.
Donc, c'est bien de ne pas utiliser d'obtenir un accesseur?
Si vous n'utilisez pas votre classe comme Javabean - Oui, c'est bien. Appeler une méthode 'WhashouldinamemyAccessor' ne le fait pas moins d'une méthode.
Parce que les propriétés sont des noms et des méthodes sont des verbes. Il fait partie du schéma de haricot bien établi et donc attendu par quiconque en utilisant votre classe.
Cela pourrait être logique de dire: P>
String txt="I have " + car.FuelLevel() + " liters of petrol.";
Le boîtier dans vos exemples pourrait utiliser une fois de plus.
Les conventions Get / Set sont tirées du Spécification de haricot Java . Donc, les gens ont fortement tendance à utiliser cela. P>
et le .Size (), .length (), et même l'attribut de la longueur des tableaux sont tous des exemples d'échecs de Java à suivre ses propres conventions. Il y en a beaucoup plus, c'est "amusant" de les découvrir! P>
Ils peuvent être des échecs pour la spécification, mais ils améliorent la lisibilité. La taille et la longueur vous permettent de lire la ligne de code suivante: comme ... p> pendant que je suis moins que la taille de la chose ... p>
blockQuote> Il n'y a pas de vraie convention derrière cela, mais cela facilite la traduction d'une phrase directement. p> p>
Le préfixe code> est particulièrement utile si vous avez aussi définir code>,
Ajouter code>,
supprimer code>, etc., méthodes. Bien sûr, il est généralement préférable d'avoir une interface pleine de
obtenir code> s ou plein de
définir code> s. Si presque chaque méthode a
obtenez code> alors cela devient simplement le bruit. Donc, je laisserais tomber le
obtenir code> pour immutables et le fichier
code> pour les constructeurs. Pour des types "fondamentaux", tels que des collections et des cordes, ces petits mots sont également bruyants, imo. P>
La raison historique était que la spécification javabean a déclaré que les accesseurs des propriétés de la classe devraient être effectués avec GetPropertyName / SetPropertyName. L'avantage était que vous pouvez alors utiliser des API d'introspection pour énumérer dynamiquement les propriétés d'un objet, même une personne que vous n'aviez pas encore compilée dans votre programme. Un exemple de là où cela serait utile consiste à créer une architecture de plug-in qui doit charger des objets et fournir à l'utilisateur l'accès aux propriétés de l'objet. P>
Vous avez des noms différents pour récupérer la taille dans différentes classes simplement parce qu'ils ont été écrits par différentes personnes et il n'était probablement pas au moment d'une ligne directrice de conception pour nommer des méthodes de classe de manière cohérente. Une fois que des millions de lignes de code avaient été écrits en utilisant ces noms incohérents, il était trop tard pour changer. P>