Javascript乱弹设计模式系列 - 观察者模式(Observer)
2010-09-14 13:35:51 来源:WEB开发网这里简单介绍下,OrderData构造函数中设置订阅者列表,以及商品属性;
Interface.registerImplements(this, IPublisher); 实际上是让OrderData继承IPublisher接口;
registerSubscriber,removeSubscriber,notifySubscribers实际上覆盖了从IPublisher继承上来的“接口”方法,这样保存了这个类的方法调用,其中notifySubscribers为通知所有的订阅者更新信息;
4. 实现ISubscriber的具体类,添加Subscriber.js,它里面包含三个订阅者,1)MsgBox类,短信箱列表;2)ThisOrder类,该条订单名片;3)OrderList类,我的订单列表;并且让其三都继承ISubscriber的“接口”:
function MsgBox(publisher)
{
this.Publisher= publisher;
this.Publisher.registerSubscriber(this);
Interface.registerImplements(this, ISubscriber);
}
MsgBox.prototype.update = function(productName,productPrice,recommend,productCount) {
// 具体实现
}
function ThisOrder(publisher)
{
this.Publisher = publisher;
this.Publisher.registerPublisher(this);
Interface.registerImplements(this, ISubscriber);
}
ThisOrder.prototype.update = function(productName,productPrice,recommend,productCount) {
// 具体实现
}
function OrderList(publisher)
{
this.Publisher = publisher;
this.Publisher.registerPublisher(this);
Interface.registerImplements(this, ISubscriber);
}
OrderList.prototype.update = function(productName,productPrice,recommend,productCount) {
// 具体实现
}
Tags:Javascript 乱弹 设计模式
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接