js常用设计模式实现二工厂模式和抽象工厂模式

创建型模式创建型模式是对一个类的实例化过程进行了抽象,把对象的创建和对象的使用进行了分离上一篇介绍了下单例模式,这一篇介绍一下工厂模式和抽象工厂模式,为什么把这两个放在一起说,因为我个人认为他们两个是有关联的,简单工厂模式被我看作是工厂模式的简洁版,然后工厂模式被我看作是抽象工厂模式的简洁版 简单工厂定义:简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。比如你去专门卖鼠标的地方你可以买各种各样的鼠标 最通俗的理解就是封装,简单带过一下 function mouse(color,long){ var o = new Object(); o.color= color; o.long= long; o.Explain= function(){ console.log(this.color,this.long); } return o; } var mouseA = mouse('黑色',3);工厂模式定义:工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。比如去旁边还有个专门卖键盘的和耳机的然后他和卖鼠标的组成了一个门店 你要进如这个门店然后买鼠标或者键盘或者耳机 你可以把这个工厂模式理解成是 进化版的简单工厂模式 shop= function(val) { if(typeof this === "object") { //看看有没有new 没有new的话new一个 var s = new this[val](); return s; } else { return new shop(val); } } shop.prototype = { mouse: function() { console.log("买了个鼠标") }, keyboard: function() { console.log("买了个键盘") }, headset: function() { console.log("买了个耳机") } } bigShop = new shop(); mouse = new bigshop.mouse();抽象工厂模式定义:抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。前边的两个都是直接生产实例的,开始以为抽象工厂也是但是后来发现抽象工厂更像是生产工厂,其实抽象工厂其实是实现子类继承父类的方法。 ...

July 11, 2019 · 2 min · jiezi