The observer pattern is widely used in Android. Now combine your own understanding and write a simple demo.
When the teacher lectures, the teacher is an observer, he should inherit from the Observer
When a student attends a class, it is the observer who should implement the observer's interface.
In this way, when the teacher lectures, the students can receive the news
package com.ferris.observice;import java.util.observable;import java.util.Observer; Import Android.content.context;import android.widget.toast;//Observer public class Student implements Observer{private Teacher teacher;private Context context;private listeming listeming;public listeming getlisteming () {return Listeming;} public void setlisteming (listeming listeming) {this.listeming = listeming;} Public Context GetContext () {return context;} @Overridepublic String toString () {return "Student [<pre name=" code "class=" java ">teacher
= "+ Girl +", context= "+ context +"] ";} public void SetContext (context context) {This.context = context;} Public Teacher Getgirl () {return girl;} public void Setgirl (Teacher girl) {this.girl = girl;} Public Student () {} @Overridepublic void update (Observable Observable, Object data) {//TODO auto-generated method Stubthis . Girl = (Teacher) observable; Toast.maketext (context, "good teacher! ", 1). Show ();} public interface listeming{public void Lisetem (String sss);}
Package Com.ferris.observice;import Java.util.observable;import Java.util.observer;import android.content.Context; Import android.widget.toast;//Observer public class Student implements Observer{private Teacher girl;private context context; Private listeming listeming;public listeming getlisteming () {return listeming;} public void setlisteming (listeming listeming) {this.listeming = listeming;} Public Context GetContext () {return context;} @Overridepublic String toString () {return "Student [girl=" + Girl + ", context=" + context + "]";} public void SetContext (context context) {This.context = context;} Public Teacher Getgirl () {return girl;} public void Setgirl (Teacher girl) {this.girl = girl;} Public Student () {} @Overridepublic void update (Observable Observable, Object data) {//TODO auto-generated method Stubthis . Girl = (Teacher) observable; Toast.maketext (context, "good teacher! ", 1). Show ();} public interface listeming{public void Lisetem (String sss);}
Package Com.ferris.androidpattern;import Android.app.activity;import Android.os.bundle;import Android.view.View; Import Android.view.view.onclicklistener;import Android.widget.toast;import Com.ferris.observice.student;import Com.ferris.observice.student.listeming;import Com.ferris.observice.teacher;public class StrategyActivity extends Activity {private Teacher Teacher; @Overrideprotected void OnCreate (Bundle savedinstancestate) {super.oncreate ( Savedinstancestate); Setcontentview (r.layout.strategy); teacher=new teacher (); The Observer Student Student=new Student (); Student.setcontext (this); Student.setgirl (teacher);// Add Observation Object Student.setlisteming (new Listeming () {@Overridepublic void Lisetem (String sss) {//TODO auto-generated method Stubtoast.maketext (Strategyactivity.this, "received", 1). Show ();}); Teacher.addobserver (student); Findviewbyid (R.id.button1). Setonclicklistener (New Onclicklistener () {@ overridepublic void OnClick (View v) {//TODO auto-generated method Stubteacher. Speak ("Hello everyone, I am a teacher!") ");}} );}}
"Design Patterns" Android design mode-observer mode self-insight