简单工厂模式:
由一个工厂类根据参数,动态决定走哪个分支。
还是一个老例子:
- 实体:自行车商店
- 干什么:卖自行车
问题:
卖车的时候会遇到一个事情,我们卖车的品种会不断地变化,所以考虑到这部分的成本,我们可以抽离一个自行车的类。所有的修改可以根据类型来配置分支。
//抽离出来的BicycleFactory var BicycleFactory = { createBicycle:function(model){ var bicyle; switch(model){ //...... //可以在这边配置修改类型 } return bicyle; } } //定义BicycleShop var BicycleShop = function(){}; //扩展卖车这个功能 BicycleShop.prototype = { /* * @name sellBicycle * @param model 类型 */ sellBicycle:function(model){ //我们设计的是让自行车工厂类来决定 var bicycle = BicycleFactory.createBicycle(model); } };
调用方式:
var myShop = new BicycleShop(); var newBicycle = myShop.sellBicycle('newType');