Как я мешаю Eclipse обновить некоторый dir?

Вы также можете сделать так, чтобы вызывающий объект передал себя в качестве аргумента

, например

class Foo
{
  public function __construct()
  {
    $bar = new Bar();
    $bar->test($this);
  }
}

class Bar
{
  public function test()
  {
  }
}
$foo = new Foo();

Я получил эту идею из книги «Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения» Эриха Гамма и др. На странице 278 в дискуссии о структурном паттерне «Посредник».

Смысл паттерна состоит в том, чтобы уменьшить количество соединений «многие ко многим» между группой объектов / классов. Вы создаете класс-посредник, который все эти классы рассматривают как концентратор. Таким образом, классы не должны знать друг о друге. Посредник обрабатывает взаимодействия. Чтобы посредник был проинформирован об изменениях в отслеживаемых классах, он может передавать себя в качестве аргументов или посредник может быть реализован с использованием шаблона «Наблюдатель».

РЕДАКТИРОВКА 2018:

Я иногда использую интерфейсы с приведенным выше кодом, например:

interface someInterface // many classes may implement this interface
{
  public function giveMeBar();
}

class Foo implements someInterface
{
  public function __construct()
  {
    $bar = new Bar();
    $bar->test($this);
  }
  public function giveMeBar() {
    return 'Bar';
  }
}
class Bar
{
  public function test(someInterface $a)
  {
    echo $a->giveMeBar();
  }
}
$foo = new Foo(); // prints "Bar"
14
задан Chandrayya G K 4 March 2014 в 07:54
поделиться

6 ответов

Согласно этот поток , нет :

  • нет настроек для каждого проекта (для отключения автообновления)
  • нет настроек для каталога в рамках одного проекта.

Для более поздних версий Eclipse, как подробно описано на странице справки Eclipse , вы можете использовать фильтры ресурсов (также первоначально упомянутые ниже pcoucke )

Фильтры ресурсов можно создавать, редактировать и удалять на странице свойств Файл> Свойства> Ресурс> Фильтры ресурсов для ресурса проекта или папки.

Фильтры ресурсов применяются только к файлам и / или папкам, которые неявно включены в рабочую область с помощью операции обновления
Фильтр ресурсов «Исключить» предотвращает включение всех файлов и / или папок, соответствующих условию фильтра, в рабочую область во время операции обновления.

Я упомянул пример в « Как получить .git папок, игнорируемых проектами Eclipse "

resource filter

11
ответ дан 1 December 2019 в 09:33
поделиться

If your problem is the refresh on startup, try: Preferences -> General -> Startup and Shutdown -> Refresh workspace on startup.

2
ответ дан 1 December 2019 в 09:33
поделиться

Извините, но я ничего не знаю о такой настройке. Как уже упоминалось, вы можете закрыть проект в Eclipse (как только он откроется). Это предотвращает повторное обновление этого проекта. В противном случае я могу просто предложить вам иметь по одной рабочей области на проект и не включать несколько разных проектов в одну рабочую область (если они не связаны друг с другом). Это гораздо лучшая практика, и я делаю это каждый день, работая с Eclipse. И у меня пока не было проблем такого типа, как вы упомянули.

1
ответ дан 1 December 2019 в 09:33
поделиться

Чтобы исключить проекты целиком, вы можете закрыть их. Не знаю способа для отдельных каталогов.

1
ответ дан 1 December 2019 в 09:33
поделиться

Я нашел эффективный способ взлома, который может заставить Eclipse игнорировать каталог. См. Eclipse - игнорировать целые каталоги

2
ответ дан 1 December 2019 в 09:33
поделиться

Я столкнулся с той же проблемой. Когда проект затмения обновляется, кажется, что он хочет коснуться каждого файла независимо от настроек. Кодовая база, над которой я работаю, содержит ~70K файлов, и на обновление ушло почти 2 минуты. В конце концов, я переопределил проект затмения как гораздо меньшее подмножество (~10K файлов), которое имеет ~ 1 секунду обновления. Не идеально, но долгое время обновления недопустимо.

К вашему сведению, флажок "Derived" и опции "Exclude from build..." НЕ препятствуют обновлению папки.

Обратите внимание, компьютеру, который я использую, 4-5 лет (процессор Pentium IV, жесткий диск с частотой вращения 7200 об/мин). Готов поспорить, что один из этих новых быстрых твердотельных дисков значительно увеличит время обновления!

0
ответ дан 1 December 2019 в 09:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: