изменение имени класса во время разработки - PullRequest
0 голосов
/ 15 декабря 2008

Я нахожусь в ситуации, когда у меня есть класс «прогресс» - проблема в том, что я заинтересован во включении некоторого открытого исходного кода, который также имеет класс «прогресс». Я очень смутно помню некоторую ссылку на приложение, которое может проверять различные файлы в разработке на предмет заданного имени класса ... и либо возвращать его ..., либо изменять его. У вас есть опыт этого?

спасибо

Ответы [ 3 ]

2 голосов
/ 15 декабря 2008

Некоторые языки (C ++, C #) имеют понятие пространства имен. У Java есть пакеты. Python имеет модули. Они предназначены для предотвращения конфликта имен классов. Предположим, вы говорите о Java, класс с открытым исходным кодом «Progress», вероятно, находится в своем собственном пакете, а ваш «Progress» - в вашем собственном пакете. Поэтому, возможно, у вас нет проблем, как вы думали.

Сказав это, я предполагаю, что вы спрашиваете о функции в IDE, которая называется refactor, которая позволит вам изменять имя вашего класса везде, где оно ссылается или имеет зависимости от него.

0 голосов
/ 15 декабря 2008

Всегда ставьте имена классов перед аббревиатурой продукта / проекта. Почему бы не использовать TextPad для замены всех вхождений? Таким образом, вы не будете смущены в будущем, какой это класс. Я также рекомендовал бы использовать технику пространства имен / пакета, но это заставило бы вас переписать много кода, который я предполагаю.

http://en.wikipedia.org/wiki/Code_refactoring Приведенная выше ссылка содержит несколько инструментов, используемых для рефакторинга.

0 голосов
/ 15 декабря 2008

Многие IDE (например, Eclipse) могут делать это, но для Java это более распространено, чем для PHP. Из-за динамической природы переменных PHP для IDE немного сложнее точно знать, что нужно изменить. Например, вы можете сделать это:

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

В среде IDE должно быть запущено ваше приложение, чтобы узнать, что $ name содержит «progress» в данный момент. Даже тогда не было бы способа автоматически исправить это.

Так что, к сожалению, вы застряли с поиском и заменой. Не волнуйтесь, хотя; изменение имен классов во время разработки - это хорошо. Это заставляет вас переосмыслить, для чего предназначен класс.

...