Я разработчик Android и новичок в RxJava2. Теперь у меня есть некоторая путаница относительно модели наблюдателя в нашем проекте;
Наш проект разделен на несколько слоев, таких как Вид и Модель.
Например, у нас есть UserModel и Listener в нем, затем UserList в качестве представления хочет получить сообщение от UserModel, теперь мы должны реализовать UserModel.Listener и addListener или removeListener для UserModel в нужное время;
На самом деле, похоже, в этом нет ничего плохого. В нашем проекте много таких кодов, но я думаю, что это немного скучно. Так могут ли некоторые ребята помочь мне дать лучший способ не писать такой повторяющийся код?
Я пытаюсь использовать RxJava, заменить его, я могу использовать список Observable как доступ к верхнему уровню и View подписать список; Но в действительности возможно, что мы заботимся только о событиях, подобных onHostChanged (int from, int to, int reason), и отображение событий в сущности не является простым, и это имеет большое значение для существующего кода; Другой способ - упаковать все сообщения как событие и предоставить Observable, но с параметрами трудно работать; Так что у вас есть хороший способ 100
public class UserModel{
public interface Listener{
void onUserAdd(int id);
void onUserRemove(int id);
void onHostChanged(int from, int to,int reason);
......
}
private List<UserModel.Listener> listeners;
public void addListener(UserModel.Listener listener)
public void removeListener(UserModel.Listener listener)
private void something(){
for(UserModel.Listener listener : listeners){
listeners.onHostChanged(a,b,c);
}
}
}
public class UserList implements UserModel.Listener{
@Override
public void onHostChanged(int from,int to,int reason);
}