和我一起学设计模式(三)

观察者模式,又称订阅者/发布者模式。这个模式对于减少模块之间的偶合还是非常有用的。为什么这么说,是因为被观察者不必事先知道有多少个模块对它有依赖,扩展和修改都非常自由。许多设计模式的书上对这个模式都写的过于神秘,以致于许多新手不愿意去学习它,应用它。

我从百度上搜索"观察者模式“:

观察者模式(有时又被称为发布-订阅Subscribe>模式、模型-视图View>模式、源-收听者Listener>模式或从属者模式)是软件设计模式的一种。

在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。

用的词都是很抽象的,所以我希望能用最简短的文字来讲清楚这个模式,但是自己知道,要表述出来,让别人也知道,这却并不容易。

时间: 2024-12-24 07:15:04

和我一起学设计模式(三)的相关文章

和我一起学设计模式(二)

工厂模式在多态性设计中非常重要,如果应用得当,可以使得应用程序的移植性更好,类之间的依赖更松散,从而提高灵活性.如果说单例模式被为类的职责的话,那么工厂模式就是类的多态性. 那么什么是工厂类呢? 概念:工厂类是指包含了一个专门用来创建其它对象的方法的类. 应用场景:工厂模式通常用来返回符合类似接口的不同的类.也就是说,工厂类可以允许我们根据配置或应用程序的逻辑来决定要实例化哪一个类. 下面是一个简单的工厂类代码: interface IDatabase { //...public functio

和我一起学python,基本概念 (life is short ,we need python)

作者:tobecrazy  出处:http://www.cnblogs.com/tobecrazy 欢迎转载,转载请注明出处.thank you! 基本概念 : 常量: 常量名全部大写,如PI 变量: python没有变量类型,也不必声明,直接赋值即可. 变量可以是数字,字符串,布尔值(True,Flase,注意大小写),列表,字典等类型. 如: var=1 str='hello' 变量名: 字母数字下划线,不能以数字开头.全局变量最好全部大写,一般变量注意避免保留字. 有效变量名: test1

菜鸟学设计模式之一思想准备

作为一个菜鸟,我们总抱着想终有一天,能够成为大牛的一天,其实有这个想法,这说明我们是一群上进的孩纸,好了,不说废话了. 首先呢,上一个专栏,我都是用着最普通的方法,是个程序员都写得出来的代码,写了5个APP教程,手上,有了三个上线的APP,其实这也是一种蜕变,让我从小菜鸟到入门安卓,但代码打得越多,你就发现自己想偷懒,这时候,又不知道怎么办.就像泡妞一样,别人有着自己的办法很快的追到女孩纸,而我们只能规规矩矩的用着最传统的手段,虽然能追到,但是永远成不了花花公子. 设计模式,似乎是一种能够帮你快

【和我一起学python吧】python 中的函数

一.函数的定义: Python中使用def关键字定义函数,函数包括函数名称和参数,不需要定义返回类型,Python能返回任何类型: Python代码   #没有返回值的函数,其实返回的是None def run(name): print name,'runing' #函数体语句从下一行开始,并且第一行必须是缩进的 >>>run('xiaoming') xiaoming runing >>>print run('xiaoming') xiaoming runing Non

【和我一起学python吧】python的一些推荐

看到未名的几篇帖子 使我想起了和python的一些经历,于是写了一篇咚咚. 1 书籍: python的syntax足够简单,semantics也不复杂,不怎么会使人混乱,一般来说看自带的文档足够可以学习了,看完两章便可以写出一些non-trivial的程序了. 硬要说入门书籍. learning in python可以一看.目前的版本似乎是based on python2.3的,有些内容稍微旧了点. 对于解释reference,reference counting 比较清楚,要是觉得糊涂的可以看

从零开始单排学设计模式「策略模式」黑铁 II

阅读本文大概需要 1.7 分钟. 本篇是设计模式系列的第三篇,虽然之前也写过相应的文章,但是因为种种原因后来断掉了,而且发现之前写的内容也很渣,不够系统.所以现在打算重写,加上距离现在也有一段时间了,也算是自己的一个回顾吧! 学而时习之,不亦说乎. 推荐阅读: 从零开始单排学设计模式「UML类图」定级赛 从零开始单排学设计模式「简单工厂设计模式」黑铁III 目前段位:黑铁 II Let's Go! 前言 设计模式不是语法,是一种巧妙的写法,能把程序变的更加灵活.架构模式比设计模式大,架构模式是战

【一起学设计模式】中介者模式+观察者模式+备忘录模式实战:(二)提交个订单我到底经历了什么鬼?

前言 再多的话就不说了,这个是接着上一讲: [一起学设计模式]状态模式+装饰器模式+简单工厂模式实战:(一)提交个订单我到底经历了什么鬼? 一起的,一些多余的赘述请先看这个篇文章. 业务场景 一图流,还是上一篇文章中一样的图,接下来我们就梳理下总结模式.观察者模式.备忘录模式的应用: 订单中心: 1.订单中心创建订单 2.订单状态流转(状态模式) 3.记录操作日志(装饰器模式+简单工厂模式) 4.订单中心通知 库存中心更新库存 调度中心: 1.库存中心更新本地库存(使用命令模式+模板方法模式+工

笨鸟学php(三) 运算符与表达式

一.算术运算符    +   -  *  /  %  ++  -- <?php $a = 100; $a++; // $a=$a+1; 先用变量再自增1 ++$a; // $a=$a+1; 先用自增1再用变量 $a--; // $a=$a-1; 先用变量再自减1 --$a; // $a=$a-1; 先用自减1再用变量 echo "a = ".$a."<br>"; // 100 $b = $a % 3.3; // % 会把两边的数转为整数后再进行整除

Php设计模式(三):行为型模式part1

原文详见:http://www.ucai.cn/blogdetail/7023?mid=1&f=5 可以在线运行查看效果哦! 在上一篇我们讲了结构型模式,结构型模式是讨论类和对象的结构的.总共有7种.而今天我们来介绍一下行为型模式. 一.什么是行为型模式? 行为型模式: 就是描述类和对象之间的通信和职责的.简而言之,就是类和对象扮演什么角色,还有怎么扮演这个角色的问题. 二.行为型模式的种类 大体上分为三个大类:常见模式.已知模式.深度模式 常见模式包括: 模版方法模式.命令模式.迭代器模式.观