概述
在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合。
意图
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改...
分类:
编程语言 时间:
2014-06-19 09:37:57
阅读次数:
317
观察者(Observer)模式:定义了一种一对多的依赖关系。让多个观察者对象同时监听某一个主题对象。
这个主题对象发生变化时会通知所有观察者对象,使他们字段更新自己 /* *
抽象主题(Subject)角色:主题角色把所有对观察考对象的引用保存在一个聚集里,每个主题都可以有任何数量的观...
分类:
其他好文 时间:
2014-06-16 10:42:40
阅读次数:
202
定义:定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
类图:
利用观察者模式,主题是具有状态的对象,并且可以控制这些状态。有许多观察者依赖主题来告诉他们状态何时改变了。这就产生一个关系:“一个“主题对”多个“观察者的关系。
当两个对象之间松耦合,他们依然可以交互,但是不太清楚彼此的细节。观察者模式...
分类:
其他好文 时间:
2014-06-15 19:15:16
阅读次数:
168
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式...
分类:
编程语言 时间:
2014-06-14 22:41:42
阅读次数:
369
一、设计模式的分类
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式...
分类:
其他好文 时间:
2014-06-14 14:26:54
阅读次数:
279
定义了对象之间的一对多依赖,这样一来,当一个对象状态改变时,他的所有依赖者都会收到通知并自动更新。
观察者模式的组成:
抽象主题角色:把所有对观察者对象的引用保存在一个集合中。抽象主题提供一个接口,可以增加和删除观察者角色。
具体主题角色:在具体主题内部状态改变时,给所有登记过的观察者发出通知。
抽象观察者角色:为所有具体的观察者定义一个接口,在得到主题的通知时更新...
分类:
其他好文 时间:
2014-06-14 09:54:07
阅读次数:
248
先跳过理论,JDK中已经实现了观察者模式的框架,我们先看下是如何使用的,接着看下JDK中是如何设计的,最后来自己实现观察者模式及其理论介绍1.如何用 1
public class Guanchazhe { 2 3 public static void main(String[] args)...
分类:
编程语言 时间:
2014-06-13 19:10:45
阅读次数:
260
文章转载于:http://www.java2000.net/p9452复习设计模式,看到observer观察者模式,说法是该模式和iterator迭代器模式类似已经被整合进jdk,但是jdk提供了两种接口:一、java.util.Observer
—— 观察者接口 对应:java.util.Obse...
分类:
编程语言 时间:
2014-06-13 08:38:17
阅读次数:
376
KVO是实现Cocoa
Bindings的基础,它提供了一种方法,当某个属性改变时,相应的objects会被通知到。在其他语言中,这种观察者模式通常需要单独实现,而在Objective-C中,通常无须增加额外代码即可使用。
概述 这是怎么实现的呢?其实这都是通过Objective-C的运行时...
分类:
其他好文 时间:
2014-06-09 20:54:40
阅读次数:
259