Почему Списки списков слушателя?

Почему списки слушателя (например, в Java те, которые используют addXxxListener() и removeXxxListener() зарегистрировать и не зарегистрировать слушателей) названный списками, и обычно реализовываемый как Списки? Не был бы Набор быть лучшим соответствием, с тех пор в случае слушателей существует

  • Неважно, в котором порядке их называют (хотя могут быть такие потребности, но они - особые случаи; обычные механизмы слушателя не делают таких гарантий), и
  • Никакая потребность зарегистрировать того же слушателя несколько раз (ли выполнение, которое должно привести к вызову того же слушателя 1 раз или времена N или быть ошибкой, является другим вопросом),

Это - просто вопрос традиции? Наборы являются некоторыми списками под капотом так или иначе. Есть ли различия в производительности? Выполняет итерации через a List быстрее или медленнее, чем итерация через a Set? Любой берет более или менее память? Различия, конечно, почти незначительны.

12
задан Joonas Pulakka 30 May 2010 в 10:39
поделиться

1 ответ

Какого рода набор? Должны ли все слушатели реализовывать equals и hashCode, чтобы использовался хэш-набор, или подойдет хэш-набор идентичности? Стоит ли сложность добавления слушателя в список дважды? Есть ли такой же простой механизм для обеспечения безопасности набора от добавления или удаления слушателей во время вызовов их обработчиков?

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

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

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