diff --git a/app/src/main/java/com/example/sprout/refactor/notification/Observable.java b/app/src/main/java/com/example/sprout/refactor/notification/Observable.java new file mode 100644 index 0000000..3fc1923 --- /dev/null +++ b/app/src/main/java/com/example/sprout/refactor/notification/Observable.java @@ -0,0 +1,35 @@ +package com.example.sprout.refactor.notification; + +import java.util.ArrayList; + +/** + * Observable + * + * @param 監視したいObject + * @author matsumoto_k + */ + +public class Observable { + + private ArrayList> observers = new ArrayList<>(); + + public void notifyObservers(T t) { + for (Observer observer : observers) { + observer.notify(t); + } + } + + public void notifyError(Throwable throwable) { + for (Observer observer : observers) { + observer.error(throwable); + } + } + + public void addObserver(Observer observer) { + observers.add(observer); + } + + public void removeObserver(Observer observer) { + observers.remove(observer); + } +}