【设计模式篇】Android设计模式之-观察者模式 自我见解
来源:互联网 发布:平安证券行情交易软件 编辑:程序博客网 时间:2024/05/01 23:18
观察者模式在Android广泛的使用。现在结合自己的理解,并且写一个简单demo.
当老师讲课的时候,老师就是一个被观察者,他应该继承于Observer
学生听课的时候,就是观察者,他应该实现观察者的接口。
这样的话,老师讲课的时候,学生都能收到消息了
package com.ferris.observice;import java.util.Observable;import java.util.Observer;import android.content.Context;import android.widget.Toast;//观察者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, "老师好!", 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;//观察者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, "老师好!", 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(); //被观察者Student student=new Student();student.setContext(this);student.setGirl(teacher);//添加观察对象student.setListeming(new Listeming() {@Overridepublic void lisetem(String sss) {// TODO Auto-generated method stubToast.makeText(StrategyActivity.this, "收到", 1).show();}});teacher.addObserver(student);findViewById(R.id.button1).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubteacher.Speak("大家好我是老师哦!");}} );}}
0 0
- 【设计模式篇】Android设计模式之-观察者模式 自我见解
- 【设计模式篇】Android设计模式之-组合模式 自我见解
- 【设计模式篇】Android设计模式之-策略模式 自我见解
- 设计模式-观察者模式自我理解
- Android 设计模式 之 观察者模式
- Android 设计模式 之 观察者模式
- Android 设计模式之观察者模式
- Android 设计模式 之 观察者模式
- android 中的设计模式 之 观察者模式
- Android 设计模式 之 观察者模式
- android设计模式之观察者模式
- Android 设计模式之观察者模式
- Android 设计模式之观察者模式
- android设计模式之观察者模式详解
- android设计模式之--观察者模式
- Android 设计模式 之 观察者模式
- Android 设计模式 之 观察者模式详解
- Android设计模式之观察者模式
- 验证日期格式函数
- spice 协议相关分析总结
- C# SendKeys.SendWait 方法和SendKeys.Send 方法区别
- 文件上传
- UIAleartView 改变输入框的样式
- 【设计模式篇】Android设计模式之-观察者模式 自我见解
- Codeforces Round #279 (Div. 2) F
- 查看csdn的收藏
- iOS基础5:常见呈现模式
- 找源码
- 博客里程碑
- 实现lua和c/c++互调
- npm常用命令
- C#winform程序安装时自动卸载新版本覆盖旧版本