观察者模式小结-2011

应用场景:
有一个mm,一个man。man暗恋mm已久,最近打听到mm高兴的时候会出家门看看邮箱(但是man不知道她什么时候会高兴),
于是man准备了一个礼物,塞进了mm家的邮箱
只要mm高兴了,就必定出门看看邮箱,就可以看到礼物了。
这个时候man就取得mm的芳心了,可以为所欲为了!
-----------------------------------------------------------------------
>>>mm:某一个对象,我们如果知道她固定的动作会被触发固定的方法(比如说,我们知道继承了View可以重写她onTouchEvent()的方法,我们知道一旦有这个触屏event的事件发生,就一定会调用onTouchEvent()这个方法)
>>>这样的话我们就可以在她触发的那个方法给她点礼物(在onTouchEvent()中添加我们的方法)
if(gift!=null){ gift.command(this) }这样的就是说,如果mm收到了礼物,就会把自己传递给gift对象,把自己卖了。- -。
>>>当然,我们必须准备一个礼物,当然要是mm喜欢的礼物(实现Gift接口的对象,就是下面的Gift g=new Gift();)
>>>把礼物给mm(mm.setGift(g);),这样mm的邮箱就不是空的了。
>>>当有一天,mm高兴了出门打开邮箱,发现有礼物,我们就赢得了mm的芳心了
mm就把自己给我们为所欲为了!
-----------------------------------------------------------------
实现某接口myInterface

classs MM extends View{
//定义全局变量Gift类型的观察者
Gift gift;
//定义这个方法传进接口对象
private void setMyInterface( Gift gift ){
this. gift = gift ;
};
/**
* 重写触屏监听方法
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
if(interface!=null){
//在这里就可以写上你要调用的interface对象中的方法比如
gift .start();
gift .command(this);

}
return super.onTouchEvent(event);
}
}
-------------------------------------------------------------------
接着你就可以写这个接口,还有这个接口你想实现的方法,想要的功能,甚至你还可以在接口的方法中把本对象传递给外面实现了这个接口的对象,为所欲为啊亲
--------------------------------------------------------------------------
//这个是定义的接口 MyInterface.class
----------------------------------------------------------------------

public interface Gift{
start();
command(MM m);
}
--------------------------------------------------------
//这个是实现了这个接口的对象,
--------------------------------------------------------
public class GoodGift implements Gift{
//实现这个接口当然要实现她的全部方法,必须的。既然接受她就要接受她全部!
     
public void start(){

}
public void command(MM mm){
//在这里Man想对mm干什么都可以哦

}
}
----------------------------------------------------------------------
实例化mm,礼物,当man出现的就给mm礼物,等待mm被touch的时候,就为所欲为啦!
----------------------------------------------------------------------
public class Man{
public Man(){
GoodGift g=new GoodGift();
MM mm=new MM();
mm.setGift(g);
}
}
----------------------------------------------------------------
注:这里的重写onTouchEvent方法只是一个例子,任何被动的反应模式都可以采用这个观察者模式,只要你知道她会被触发时候会调用的方法!
当然,你也可以自定义回调方法,不过觉得这样在小的项目中没有什么太大意义,以后学习加深了可能有用。
-----------------------------------------------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值