源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

JavaScript 设计模式学习 Factory

  • 时间:2021-05-18 21:08 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:JavaScript 设计模式学习 Factory
[url=]title.firstChild.data + '</a>'); } }, showError: function(statusCode) { this.display.clear(); this.display.append('Error fetching feed.'); }, stopUpdates: function() { clearInterval(this.interval); }, startUpdates: function() { this.fetchFeed(); var that = this; this.interval = setInterval(function() { that.fetchFeed(); }, this.conf.updateInterval * 1000); } }; /* FeedManager namespace. */ //工厂管理器,这里可以根据传进来的参数选择具体的Display var FeedManager = { createFeedReader: function(conf) { var displayModule = new ListDisplay(conf.id + '-display', conf.parent); Interface.ensureImplements(displayModule, DisplayModule); var xhrHandler = XhrManager.createXhrHandler(); Interface.ensureImplements(xhrHandler, AjaxHandler); return new FeedReader(displayModule, xhrHandler, conf); } }; ===================================================== 另一个自行车工厂的例子: var BicycleShop = function() {}; BicycleShop.prototype = { sellBicycle: function(model) { var bicycle = this.createBicycle(model); bicycle.assemble(); bicycle.wash(); return bicycle; }, createBicycle: function(model) { throw new Error('Unsupported operation on an abstract class.'); } }; /* AcmeBicycleShop class. */ var AcmeBicycleShop = function() {}; extend(AcmeBicycleShop, BicycleShop); AcmeBicycleShop.prototype.createBicycle = function(model) { var bicycle; switch(model) { case 'The Speedster': bicycle = new AcmeSpeedster(); break; case 'The Lowrider': bicycle = new AcmeLowrider(); break; case 'The Flatlander': bicycle = new AcmeFlatlander(); break; case 'The Comfort Cruiser': default: bicycle = new AcmeComfortCruiser(); } Interface.ensureImplements(bicycle, Bicycle); return bicycle; }; /* GeneralProductsBicycleShop class. */ var GeneralProductsBicycleShop = function() {}; extend(GeneralProductsBicycleShop, BicycleShop); GeneralProductsBicycleShop.prototype.createBicycle = function(model) { var bicycle; switch(model) { case 'The Speedster': bicycle = new GeneralProductsSpeedster(); break; case 'The Lowrider': bicycle = new GeneralProductsLowrider(); break; case 'The Flatlander': bicycle = new GeneralProductsFlatlander(); break; case 'The Comfort Cruiser': default: bicycle = new GeneralProductsComfortCruiser(); } Interface.ensureImplements(bicycle, Bicycle); return bicycle; };
/* Usage. */
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部