Java: реализация декоратора List <E>с уведомлением - PullRequest
1 голос
/ 26 октября 2009

Мне нужно реализовать класс List decorator, который уведомляет зарегистрированных слушателей о любых изменениях в списке. Я выделил подклассы AbstractListDecorator из org.apache.commons.collections15 и переопределил такие методы, как add(), addAll(), remove(int), remove(E) и так далее, с помощью моего уведомления.

Но есть некоторые дыры - например, при переборе List по умолчанию AbstractListDecorator.iterator() и вызове метода Iterator.remove(), переопределенные методы remove(int) или remove(E) не вызывают.

Существует ли какая-либо стандартная и безопасная практика для украшения таких вещей?

Спасибо.

1 Ответ

2 голосов
/ 26 октября 2009

переопределяет методы iterator () и listIterator () и предоставляет оформленный итератор, который будет уведомлять ваших слушателей всякий раз, когда вызывается метод remove ().

...