`

观察者设计模式

 
阅读更多



 Observer模式,有两个重要的对象我们称之为Observerable和Observer,当Observerable的状态发生改变的时候,注册的observer对象能够得到通知


    Observerable对象:

public class Product  extends Observable{//广播对象,向往这个对象注册监听的观察者发送广播
	private String name;
	private int price;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
		setChanged();
		notifyObservers(name);//和监听器的区别,监听器需要有一个判空的操作 1-1 1-N
	}
	public int getPrice() {
		return price;
	}
	public void setPrice(int price) {
		this.price = price;
		setChanged();
		notifyObservers(price);
	}
	
}

     Observer对象:

   

public class NameObserver implements Observer{//监听名字变化的观察者

	@Override
	public void update(Observable o, Object obj) {
		if(obj instanceof String){
			System.out.println("name is changed "+obj);
		}
	}
}

   

public class PriceObserver implements Observer{//监听价格变化的观察者

	@Override
	public void update(Observable o, Object arg) {
		 if(arg instanceof Integer){
			  System.out.println("price is changed"+arg);
		  }
	}
}

 

       测试:

    

public class Main {
	public static void main(String[] args) {
		Product product=new Product();
		NameObserver nameObserver=new NameObserver();
		PriceObserver priceObserver=new PriceObserver();
		//注册观察者
		product.addObserver(nameObserver);
		product.addObserver(priceObserver);
		//发生改变时会通知注册的观察者
		product.setName("aas");
		product.setPrice(25);
	}
}

 

Android中 在Provide里面增删改方法最后写上


 

ContentResolver注册一个observer来监听数据的更新,调用ContentResolver的方法registerContentObserver()即可完成注册。这样当对应的ContentProvider数据更新的时候,我们向ContentResolver注册的对象方法将会被调用

 



 

  • 大小: 5.2 KB
  • 大小: 61 KB
  • 大小: 17.7 KB
分享到:
评论

相关推荐

    ObserverDemo观察者设计模式源码

    观察者设计模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。这个模式在很多场景下都有广泛...

    委托和事件-观察者设计模式

    观察者设计模式是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 **委托** 委托在.NET中可以视为类型安全的函数指针,它允许我们...

    观察者设计模式 C++实现

    观察者设计模式是一种行为设计模式,它允许一个对象(称为主题)在状态改变时通知其他对象(称为观察者)。这种模式常用于事件处理,当一个对象的状态发生变化时,所有依赖于该状态的对象都会得到通知并自动更新。在...

    观察者设计模式demo

    观察者设计模式是一种行为设计模式,它允许对象在状态改变时通知其他依赖它的对象,而无需显式指定这些依赖关系。在这个"观察者设计模式demo"中,我们可能看到一个具体的实现,特别是在Android开发中的应用,例如在...

    构建者模式、回调和观察者设计模式

    构建者模式、回调和观察者设计模式是软件开发中常用的设计模式,它们分别在不同的场景下发挥着重要的作用。下面将详细介绍这三个设计模式,并通过一个简单的例子来展示它们的应用。 首先,构建者模式(Builder ...

    java中监听机制,以及观察者设计模式

    Java中的监听机制与观察者设计模式是编程中重要的概念,它们在软件开发中扮演着关键的角色,尤其是在构建可扩展和可维护的系统时。这里,我们将深入探讨这两个主题,并通过实例来阐述它们的工作原理和应用。 首先,...

    设计模式之观察者设计模式理解

    轻松理解观察者设计模式

    java观察者设计模式demo源码

    Java观察者设计模式(Observer Design Pattern)是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。这种模式常用于事件处理,例如...

    观察者设计模式笔记

    031114_【第11章:Java常用类库】_观察者设计模式笔记

    设计模式--观察者模式java例子

    观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动的系统或者...

    观察者模式java实现观察者设计模式

    观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在Java中,我们可以利用Java提供的...

    ObserverDemo观察者设计模式Demo

    ObserverDemo观察者设计模式Demo

    跟我一起学 设计模式-观察者模式

    观察者模式,也称为发布-订阅模式或事件驱动模式,是一种行为设计模式,它定义了对象间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 在C#、ASP.NET等.NET框架中,...

    设计模式实现——观察者模式

    观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现发布-订阅...

    观察者模式

    观察者设计模式观察者模式(有时又被称为发布-订阅模式、模型-视图模式、源-收听者模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时...

    设计模式之观察者模式

    观察者模式是软件设计模式中的一种行为模式,它在对象之间定义了一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式广泛应用于事件驱动编程、发布/订阅系统...

    Java观察者设计模式详解

    Java观察者设计模式是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件处理系统,将观察者与被观察对象解耦,使得...

Global site tag (gtag.js) - Google Analytics