WEB开发网
开发学院网页设计JavaScript 观察者模式—使用JavaScript实现 阅读

观察者模式—使用JavaScript实现

 2010-09-14 13:23:45 来源:WEB开发网   
核心提示: 一个简单的实现现在你需要实现客户端功能以便能够附加“观察者”到相应的“主题”上,例如,观察者模式—使用JavaScript实现(6),你可以创建一个简单的应用程序,在应用程序中定义一个主checkbox,当对应的 主题 对象通知这些观察者有关

一个简单的实现

现在你需要实现客户端功能以便能够附加“观察者”到相应的“主题”上。例如,你可以创建一个简单的应用程序,在应用程序中定义一个主checkbox,作为被观察对象,然后,再定义另一些checkbox作为观察者。当 主题 对象自身的状态发生变化的时候,它将通知所有依附它的 观察者。在 主题 对象中各自独立的 观察者 将独自处理这个消息。

/************* Concrete Subject *************/
var mainCheck = document.createElement("input");
mainCheck.type = 'checkbox';
mainCheck.id = 'MainCheck';
  
Inherits(new Subject(), mainCheck);
  
mainCheck["onclick"] = new Function("mainCheck.Notify(mainCheck.checked)");
  
/**************** Observer ****************/
var obsCheck1 = document.createElement("input");
var obsCheck2 = document.createElement("input");
  
obsCheck1.type = 'checkbox';
obsCheck1.id = 'Obs1';
  
obsCheck2.type = 'checkbox';
obsCheck2.id = 'Obs2';
  
Inherits(new Observer(), obsCheck1);
Inherits(new Observer(), obsCheck2);
  
obsCheck1.Update = function(value)
{
  this.checked = value;
}
  
obsCheck2.Update = function(value)
{
  this.checked = value;
  //Add...
}
  
mainCheck.AddObserver(obsCheck1);
mainCheck.AddObserver(obsCheck2);

附:程序实例

观察者模式—使用JavaScript实现

在特定情况下,所有的 观察者 对象都使用同样的方式来处理(主题对象的)消息。当对应的 主题 对象通知这些观察者有关它的“新状态”的时候,任何一个观察者都会改变自己的状态,并把这个可被观察的状态作为它的新的值。

上一页  1 2 3 4 5 6 

Tags:观察者 模式 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接