在Android中,觀察者模式可以通過使用Java的內置觀察者模式實現,也可以自己手動實現。
方法一:使用內置觀察者模式
具體代碼實現如下:
import java.util.Observable;
import java.util.Observer;
// 被觀察者類
class MyObservable extends Observable {
public void doSomething() {
// do something
setChanged();
notifyObservers();
}
}
// 觀察者類
class MyObserver implements Observer {
@Override
public void update(Observable observable, Object arg) {
// 處理被觀察者通知的事件
}
}
// 在需要監聽事件的地方
MyObservable observable = new MyObservable();
observable.addObserver(new MyObserver());
observable.doSomething();
方法二:手動實現觀察者模式
具體代碼實現如下:
// 被觀察者接口
interface Subject {
void registerObserver(Observer observer);
void removeObserver(Observer observer);
void notifyObservers();
}
// 觀察者接口
interface Observer {
void update();
}
// 被觀察者實現
class MySubject implements Subject {
private List<Observer> observers = new ArrayList<>();
@Override
public void registerObserver(Observer observer) {
observers.add(observer);
}
@Override
public void removeObserver(Observer observer) {
observers.remove(observer);
}
@Override
public void notifyObservers() {
for (Observer observer : observers) {
observer.update();
}
}
}
// 觀察者實現
class MyObserver implements Observer {
@Override
public void update() {
// 處理被觀察者通知的事件
}
}
// 在需要監聽事件的地方
MySubject subject = new MySubject();
subject.registerObserver(new MyObserver());
subject.notifyObservers();
以上兩種方法都可以實現觀察者模式,具體使用哪種方法取決于具體需求。