zoukankan      html  css  js  c++  java
  • 设计模式二三话10月份

    2012年9月30日

    15:30

    关键词:补充基础的uml术语 ,还有用过的观察者模式

    设计模式二三话-10月份

    理解设计模式-一个长期的过程-23=5+7+11 创建型+结构型+行为型

    至今比较熟悉的有:

     

    用过:单列模式 ,观察者模式,  适配器模式,。。

    每次还是拿着那个图看吧:我想

     

     

    这次就说观察者模式吧哈。

     

    ljee说我没有理解观察者,

     

     

    首先分清楚 3uml 关系把:

     

    一个 聚合(aggregation) ,一个合成(composition ,前面两个箭头都有尾巴,并且合成尾巴是实心的,就如他的定义样,部分和整体的生命是一样的,注意是有生命的。

     

    还有个关系叫做是 关联(association),在 观察者模式中就用到这个,代码上看起来就是一个成员变量罢了,在uml图上看起来就是一个箭头,没有尾巴。

    clip_image001

    clip_image002

    clip_image003

     

     

     

    定义:观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新


    类图:

    clip_image001

    附:visio原图


    特点:

    1、观察者定义了对象之间一对多的关系

    2、主题(即被观察者)用一个共同的接口来更新观察者;

     

    3、观察者和被观察者之间用松耦合方式结合,被观察者不知道观察者的细节,只知道观察者实现了观察者接口;

    4、使用此方式是,可以从被观察者处推(push)或拉(pull)数据

    5、有多个观察者时,不可以依赖特定的通知次序。


    适用之处:

    各种需求引起的,对数据源(事件源)的监听,譬如button的onclick事件监听/触发、page的onload事件监听/触发等等;

    在多个事件/数据/场景依赖某一事件/数据/场景变更,而触发自身的变更,也可以使用观察者模式。

     

    源文档 <http://www.haogongju.net/art/592723>

  • 相关阅读:
    magento head.phtml 加载<a target=_parent
    火狐浏览器七个黑客必备工具插件
    Windows 2003】利用域&&组策略自动部署软件
    js zhi网马
    js 判断网页类型
    zencart hosts本地解析
    优化之zencart第一时间修改原始内容
    realypay
    mysql 配置
    1.4-动态路由协议OSPF③
  • 原文地址:https://www.cnblogs.com/titer1/p/2711574.html
Copyright © 2011-2022 走看看