public class Client {
Client() {
zhangSanFeng zhangSanFeng = new zhangSanFeng();
zhangSanFeng.fighting();
ZhangWuJi zhangWuJi = new ZhangWuJi();
zhangWuJi.fighting();
}
}
public interface Observer {
public void update(String message);
}
定义具体观察者对象
import android.util.Log;
public class WeiXinUser implements Observer {
private static final String TAG = "WeiXinUser";
private String name;
public WeiXinUser(String name) {
this.name = name;
}
@Override
public void update(String message) {
Log.i(TAG, name + message);
}
}
抽象被观察者
public interface Subject {
public void attach(Observer observer);
void detach(Observer observer);
void notify(String message);
}
具体实现被观察者
public class SubscriptionSubject implements Subject {
private List<Observer> weixinUserList = new ArrayList<>();
@Override
public void attach(Observer observer) {
weixinUserList.add(observer);
}
@Override
public void detach(Observer observer) {
weixinUserList.remove(observer);
}
@Override
public void notify(String message) {
for (Observer observer : weixinUserList) {
observer.update(message);
}
}
}
具体被观察者和观察的订阅和实现发送消息
public class Client {
public Client() {
WeiXinUser zhanwuji = new WeiXinUser("张无忌");
WeiXinUser qiaofen = new WeiXinUser("乔峰");
SubscriptionSubject subscriptionSubject = new SubscriptionSubject();
subscriptionSubject.attach(zhanwuji);
subscriptionSubject.attach(qiaofen);
subscriptionSubject.notify("该学习啦");
}
}