观察者模式的基本思想:被观察者向观察者发送消息,观察者接受消息后作出反应。
步骤:1.根据需要建立接口。接口需要嵌套使用。已达到效果。
2.使创建类继承相应的接口,使接口所要呈现的功能呈现。(主要是要发现所有的监听者,可以实现对所有的监听者发送消息)。
3.创建被观察者。在被观察者的类中需要发现所有观察者,确保把消息发送给观察者。
具体实现:(本次代码使用的是AndroidStudio,不是很完整)
1.接口
public interface Minators {
public void addminator(Minator m);
public void removeminator();
public void notifyMessage(Minatedata data);
}
public interface Minator {
public void Message(Minatedata d);
}
2.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_minator);
t= (TextView) findViewById(R.id.textview_Minator);
b= (Button) findViewById(R.id.button_minator);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getbasis();
}
});
}
/*进行数据的初始化操作*/
private void getbasis() {
Myminator mr=new Myminator();//shili
Myminators mrs=new Myminators();
mrs.addminator(mr);
Minatedata d=new Minatedata("这里是主Activity");
mrs.notifyMessage(d);
}
class Myminator implements Minator {
@Override
public void Message(Minatedata d) {
String test= d.getContent();
t.setText(test);
}
}
class Myminators implements Minators{
List<Minator>list=new ArrayList<>();
@Override
public void addminator(Minator m) {//将所有观察者都添加
list.add(m);
}
@Override
public void removeminator() {
}
@Override
public void notifyMessage(Minatedata data) {//向所有观察者发送消息。
for(Minator r:list){
r.Message(data);
}
}
}