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

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

相关推荐

    php设计模式小结

    观察者模式是一种行为设计模式,允许你定义一个订阅机制,当对象状态改变时,通知所有“观察”该对象的其他对象。在PHP中,这种模式常用于事件驱动编程,例如,当用户提交表单时发送邮件通知。 ```php interface ...

    JavaScript模式中文[pdf] 百度云

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

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

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

    设计模式小结

    6. **观察者模式**:定义对象间的一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 7. **装饰器模式**:动态地给一个对象添加一些额外的职责,既扩展了功能,又不破坏...

    设计模式小结.docx

    7. 观察者模式:定义对象间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 8. 状态模式:允许对象在其内部状态改变时改变其行为,看起来好像对象改变了它的类。 9. ...

    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 ...

    软件设计(设计模式)课程实验报告.docx

    行为型设计模式主要关注对象之间的交互和责任分配,如策略模式、模板方法模式、观察者模式、访问者模式、责任链模式、命令模式、迭代器模式、备忘录模式、状态模式和解释器模式。这些模式在解决复杂的控制流程和行为...

    设计模式:可复用面向对象的基础

    如策略模式、命令模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、模板方法模式和访问者模式等。 #### 四、设计模式实例解析 ##### 单例模式 - **定义**:确保一个类只有一个实例,并提供一个...

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

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

    程序设计模式与架构

    行为型模式包括但不限于策略模式、命令模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、模板方法模式和访问者模式等。 #### 网站开发架构模式 网站开发架构模式是指用于构建网站的通用结构和...

    Tomcat 系统架构与设计模式,第 1 部分: 工作原理1

    * 观察者模式:在 Tomcat 中,观察者模式被用于实现事件驱动的编程,例如 Lifecycle 事件的监听和处理。 * Singleton 模式:在 Tomcat 中,Singleton 模式被用于确保单例对象的唯一性,例如 Engine 和 Host 的实例。...

Global site tag (gtag.js) - Google Analytics