`
heyixian
  • 浏览: 12664 次
社区版块
存档分类
最新评论

观察者模式小结-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方法只是一个例子,任何被动的反应模式都可以采用这个观察者模式,只要你知道她会被触发时候会调用的方法!
当然,你也可以自定义回调方法,不过觉得这样在小的项目中没有什么太大意义,以后学习加深了可能有用。
-----------------------------------------------------------------
 
分享到:
评论

相关推荐

    JavaScript模式中文[pdf] 百度云

    第1章 简介  模式  JavaScript:基本概念  ECMAScript 5 ... 观察者模式  小结  第8章 DOM和浏览器模式  关注分离  DOM脚本  事件  长期运行脚本  远程脚本  配置JavaScript  载入策略

    ActionScript 3.0设计模式扫描版_方红琴译

    观察者模式中关键的00P概念 观察者模式最小化示例 实例:添加状态并标识用户 动态地改变状态 实例:采用不同的形式显示数据 小结 第9章 模板方法模式 什么是模板方法模式7 模板方法用到的主要()OP概念 最小...

    设计模式--C++

    5.7 OBSERVER(观察者)—对象行为型模式 194 5.8 STATE(状态)—对象行为型模式 201 5.9 STRATEGY(策略)—对象行为型模式 208 5.10 TEMPLATE METHOD(模板方法)—类行为型模式 214 5.11 VISITOR(访问者)—...

    java设计模式

    22.4.1 Java世界中的观察者模式 22.4.2 项目中真实观察者模式 22.4.3 订阅发布模型 22.5 最佳实践 第23章 门面模式 23.1 我要投递信件 23.2 门面模式的定义 23.3 门面模式的应用 23.3.1 门面模式的优点 23.3.2 门面...

    sunzhaoye#blog#观察者模式1

    // 如果先订阅,则直接订阅后发布// 如果先发布后订阅,则把发布的事件类型与参数保存起来,等到有订阅后执行订阅小结:发布订阅模式可以使代码解耦,满足开放封闭原

    JavaScript模式 斯托扬·斯特凡洛夫 著

    前言 第1章 简介 模式 JavaScript:基本概念 ECMAScript JSLint Co ole 第2章 基本技巧 ...观察者模式 小结 第8章 DOM和浏览器模式 关注分离 DOM脚本 事件 长期运行脚本 远程脚本 酉己置JavaScript 载入策略 小结

    Delphi模式编程第一分卷

    22.3.1 观察者模式在界面色彩主题中的应用 22.3.2 范例小结 第23章 状态模式(State) 23.1 模式解说 23.2 结构与用法 23.2.1 模式结构 23.2.2 代码模板 23.2.3 问题讨论 23.3 范例与实践 23.3.1 状态模式...

    Delphi模式编程第二分卷

    22.3.1 观察者模式在界面色彩主题中的应用 22.3.2 范例小结 第23章 状态模式(State) 23.1 模式解说 23.2 结构与用法 23.2.1 模式结构 23.2.2 代码模板 23.2.3 问题讨论 23.3 范例与实践 23.3.1 ...

    设计模式--可复用面向对象软件的基础

    5.7 OBSERVER(观察者)——对象行为型模式 5.8 STATE(状态)——对象行为型模式 5.9 STRATEGY(策略)——对象行为型模式 5.10 TEMPLATE METHOD(模板方法)——类行为型模式 5.11 VISITOR(访问者)——对象行为...

    探究观察者设计模式

    观察者模式结论消息交换的形式消息处理要求消息处理基础结构消息处理小结注意简介在开发给定项目的过程中,通常会使用设计模式概念来解决与应用程序设计和结构有关的某些问题。但是,设计模式定义通常很难准确地表达...

    设计模式:可复用面向对象软件的基础--详细书签版

    5.7 observer(观察者)—对象行为型 模式 194 5.8 state(状态)—对象行为型模式 201 5.9 strategy(策略)—对象行为型 模式 208 5.10 template method(模板方法) —类行为型模式 214 5.11 visitor...

    设计模式可复用面向对象软件的基础.zip

    5.7 OBSERVER(观察者)—对象行为型 模式 194 5.8 STATE(状态)—对象行为型模式 201 5.9 STRATEGY(策略)—对象行为型 模式 208 5.10 TEMPLATE METHOD(模板方法) —类行为型模式 214 5.11 VISITOR(访问者)—...

    《设计模式》中文版(23个设计模式的介绍与运用)

    5.7 OBSERVER(观察者)—对象行为型 模式 194 5.8 STATE(状态)—对象行为型模式 201 5.9 STRATEGY(策略)—对象行为型 模式 208 5.10 TEMPLATE METHOD(模板方法) —类行为型模式 214 5.11 VISITOR(访问者)—...

    软件设计师必读的书-设计模式

    5.7 OBSERVER(观察者)—对象行为型 模式 194 5.8 STATE(状态)—对象行为型模式 201 5.9 STRATEGY(策略)—对象行为型 模式 208 5.10 TEMPLATE METHOD(模板方法) —类行为型模式 214 5.11 VISITOR(访问者)—...

    php设计模式小结

    主要介绍php的设计模式,主要介绍以下三中模式,主要包括单例模式,工厂模式,观察者模式

    C#23种设计模式_示例源代码及PDF

    观察者模式: 让多个观察者对象同时监听某一个 观察者模式 观察者模式定义了一种一队多的依赖关系, 主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更 新自己。 20、STATE —...

    设计模式(.PDF)

    5.7 OBSERVER(观察者)—对象行为型 模式 194 5.8 STATE(状态)—对象行为型模式 201 5.9 STRATEGY(策略)—对象行为型 模式 208 5.10 TEMPLATE METHOD(模板方法) —类行为型模式 214 5.11 VISITOR(访问者)—...

    GOLF设计模式(C++语言版)

    5.7 OBSERVER(观察者)—对象行为型 模式 194 5.8 STATE(状态)—对象行为型模式 201 5.9 STRATEGY(策略)—对象行为型 模式 208 5.10 TEMPLATE METHOD(模板方法) —类行为型模式 214 5.11 VISITOR...

Global site tag (gtag.js) - Google Analytics