消息驱动机制,也叫观察者模式、事件驱动模式。不论是在应用还是游戏中,都是一种常见的设计模式,该设计模式非常利于模块的解耦。
我们这里以老师和学生为例,有一个老师和多个学生,老师发的每一个消息,学生都要能够收到。如:老师说,明天我们放假,然后确保所有学生都能收到该消息。
首先,建立一个消息分发中心,负责收集和移除消息接收个体(这里就是学生),同时负责通知到收集的每一个个体。该类命名为Human_Event.
public abstract class Human_Event {
private List<Listener> mNoticeList = new ArrayList<Listener>();
public void addListener(Listener msg) {
mNoticeList.add(msg);
}
public void removeMessage(Listener msg) {
mNoticeList.remove(msg);
}
public void notifyListener(String saySomething) {
for (Listener l:mNoticeList) {
l.update(saySomething);
}
}
}
然后,建立一个老师类,该类具有消息分发的特性,所以继承自Human_Event
public class Teacher extends Human_Event {
private String mSomeWord;
public String getSomeWord() {
return mSomeWord;
}
public void say(String saySomething) {
mSomeWord = saySomething;
System.out.println("老师说:" + saySo