Итак, скажем, у меня есть пользовательский объект в java:
public class TestObject {
private int value = 0;
public TestObject(int value) {
this.value = value;
}
public void increaseValue() {
value++;
}
}
Теперь я хочу знать, когда этот объект изменен. Или, точнее, я хочу знать, когда изменилось какое-либо из его полей (в данном случае значение). Кроме того, если я расширяю TestObject, я все еще хочу иметь возможность прослушивать любые изменения полей, которые могут произойти с этим объектом, в том числе, если это изменение относится к новому полю новых полей.
Я провел некоторое исследование и обнаружил множество слушателей, которые поставляются с java, но все они, похоже, терпят неудачу в той области, в которой они требуют, чтобы вы помещали вызовы слушателям в конец ваших методов. Например, функцияувеличитьзначение() также должна уведомить всех слушателей объекта TestObject об изменении значения. Очевидно, это не работает для меня, потому что расширяемость обязательна, и я не знаю, будут ли люди, которые наследуют от этого объекта, придерживаться требования о том, что они должны уведомлять слушателей. Не говоря уже о том, что программировать это для каждого метода мутатора кажется мучением.
Если бы можно было пролить свет на эту тему, это было бы очень признательно.