2008-12-15 8 views
0

Je suis dans une situation où j'ai la classe "progrès" - le problème est que je suis intéressé par l'incorporation d'une source ouverte qui a aussi la classe "progrès". Je me souviens très vaguement d'une référence à une application qui est capable d'inspecter les différents fichiers dans un développement pour un nom de classe donné ... et de le renvoyer ... ou de le changer. Avez-vous l'expérience de cela?changer un nom de classe tout au long d'un développement

grâce

Répondre

0

De nombreux (par exemple Eclipse IDEs) peuvent le faire, mais il est plus courant pour Java puis PHP. En raison de la nature dynamique des variables PHP, il est un peu plus difficile pour les IDE de savoir exactement quoi changer. Par exemple, vous pouvez le faire:

$name = "prog"; 
$name .= "ress"; 
$cls = new $name(); 

L'IDE devrait fonctionner réellement votre application pour savoir que le nom $ contient « progrès » à ce moment précis. Même alors, il n'y aurait aucun moyen de le réparer automatiquement.

Donc, malheureusement, vous êtes bloqué avec trouver-et-remplacer. Ne vous inquiétez pas cependant; changer de nom de classe pendant le développement est une bonne chose. Cela vous oblige à repenser exactement ce que la classe est pour.

2

Certaines langues (C++, C#) ont une notion d'espace de noms. Java a des paquets. Python a des modules. Ils sont conçus pour empêcher la collision de nom de classe. Supposons que vous parlez de Java, la classe Open Source appelée "Progress" est probablement dans son propre paquet, et votre "progression" est dans votre propre paquet. Alors peut-être que vous n'avez pas de problème comme vous le pensiez. Cela dit, je suppose que vous posez des questions sur une fonctionnalité dans un EDI appelée refactor qui vous permettrait de changer le nom de votre classe partout où il se réfère ou a des dépendances.

0

noms de classe préfixe Toujours avec l'abréviation produit/projet. Pourquoi ne pas utiliser TextPad pour remplacer toutes les occurrences? De cette façon, vous ne serez pas confus à l'avenir quelle classe il est. Je recommande également d'utiliser la technique namespace/package, mais cela vous obligerait à réécrire beaucoup de code que je suppose.

http://en.wikipedia.org/wiki/Code_refactoring Le lien ci-dessus a quelques outils utilisés pour le refactoring.

Questions connexes