摘要:工厂模式定义一个用于创建对象的接口,这个接口由子类决定实例化哪一个类。如果不好理解,我们举个实际一点的例子。假设我们要在一个页面上插入一些元素,但这些元素不确定,可能是图片,可能是链接,可能是文本。
工厂模式定义:一个用于创建对象的接口,这个接口由子类决定实例化哪一个类。该模式使一个类的实例化延迟到了子类。而子类可以重写接口方法以便创建的时候指定自己的对象类型。
看不懂?没关系,先看看下面的例子。
var produceManager = {}; produceManager.createProduceA = function(){ console.log("ProduceA"); } produceManager.createProduceB = function(){ console.log("ProduceB"); } produceManager.factory = function(type){ return new produceManager[type]; } var produce = produceManager.factory("createProduceA");
如果不好理解,我们举个实际一点的例子。假设我们要在一个页面上插入一些元素,但这些元素不确定,可能是图片,可能是链接,可能是文本。我们需要定义工厂类与子类(产品类)。
var page = page || {}; page.dom = page.dom || {}; //子函数:处理文本 page.dom.Text = function(){ this.insert = function(where){ var txt = document.createTextNode(this.url); where.appendChild(txt); }; }; //子函数:处理链接 page.dom.Link = function(){ this.insert = function(where){ var link = document.createElement("a"); link.href = this.url; link.appendChild(document.createTextNode(this.url)); where.appendChild(link); }; }; //子函数:处理图片 page.dom.Image = function(){ this.insert = function(where){ var im = document.createElement("img"); im.src = this.url; where.appendChild(im); }; }; //工厂 page.dom.factory = function(type){ return new page.dom[type]; }; //test: var o = page.dom.factory("Link"); o.url = "http://abc.com"; o.insert(document.body);
再读读这句话:工厂模式定义一个用于创建对象的接口,这个接口由子类决定实例化哪一个类。该模式使一个类的实例化延迟到了子类。而子类可以重写接口方法以便创建的时候指定自己的对象类型。
这下是不是清楚多了,还不懂,没关系,多敲几遍,多看几遍,就懂了。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/86254.html
摘要:首先吧之前的代码打包成一个新的设计模式公用代码工厂模式要点工厂接口是工厂方法模式的核心,与调用者直接交互用来提供产品。适用场景在任何需要生成复杂对象的地方,都可以使用工厂方法模式。 工厂模式 之前讲了接口,封装,继承,单例等,现在就需要应用这些特性来完成一些设计模式了。首先吧之前的代码打包成一个新的JS DesignPattern.js // 设计模式公用代码 exports...
摘要:工厂模式定义一个用于创建对象的接口,这个接口由子类决定实例化哪一个类。实现一个简单的实现,使用如果使用对象属性来实现以下例子中的工厂方法接受在运行时以字符串形式指定的类型,然后创建并返回所请求类型的对象。 1. 简介 工厂模式的目的是为了创建对象,它通常在类或者类的静态方法中实现,具有以下目标: 当创建相似对象时执行重复操作 当编译时不知道具体类型的情况下,为工厂客户提供一个创建对象...
摘要:参考文章深入理解三种工厂模式工厂模式,工厂方法模式,抽象工厂模式详解工厂模式是中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 参考文章:深入理解java三种工厂模式工厂模式,工厂方法模式,抽象工厂模式 详解 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的...
摘要:抽象工厂模式抽象工厂是工厂模式的升级版,他用来创建一组相关或者相互依赖的对象。代码抽象工厂模式抽象工厂的优点抽象工厂模式除了具有工厂方法模式的优点外,最主要的优点就是可以在类的内部对产品族进行约束。 抽象工厂模式 抽象工厂是工厂模式的升级版,他用来创建一组相关或者相互依赖的对象。上节学习了工厂模式,类的创建依赖工厂类,程序需要扩展时,我们必须创建新的工厂类。工厂类是用来生产产品的,那我...
摘要:抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。前边的两个都是直接生产实例的,开始以为抽象工厂也是但是后来发现抽象工厂更像是生产工厂,其实抽象工厂其实是实现子类继承父类的方法。 创建型模式 创建型模式是对一个类的实例化过程进行了抽象,把对象的创建和对象的使用进行了分离 上一篇介绍了下单例模式,这一篇介绍一下工厂模式和抽象工厂模式,...
阅读 1796·2019-08-30 15:55
阅读 981·2019-08-26 11:57
阅读 442·2019-08-26 11:29
阅读 3329·2019-08-26 10:49
阅读 1881·2019-08-23 18:40
阅读 1725·2019-08-23 16:04
阅读 3073·2019-08-23 11:01
阅读 2248·2019-08-23 10:56