博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript设计模式-工厂方法模式
阅读量:5979 次
发布时间:2019-06-20

本文共 855 字,大约阅读时间需要 2 分钟。

工厂方法模式,通过对产品类的抽象使其创建业务,主要负责创建多类产品的实例。

前面记录了简单工厂模式,但是需求时不断变化的,当需求简单时,直接创建对象就行,需求多了就可以用简单工厂重构,但是当需求不断增加时,我们不仅要添加类,还要修改工厂函数,这样很不友好,所有还需要更好的模式来适应更多的需求。

安全模式类

安全模式类可以屏蔽使用类的错误造成的错误。如下:

var Demo = function () {    if(!(this instanceof Demo)){        return new Demo();    }}var d = Demo();d.show();//成功获取

安全的工厂方法

//安全模式创建的工厂类var Factory = function (type,content) {    if(this instanceof Factory){        var s = new this[type](content);        return s;    }else {        return new Factory(type,content);    }}
//工厂原型中设置所有类型数据对象的基类Factory.prototype = {    java:function (content) {    },    javaScript1:function (content) {    },    ui:function (content) {    },    php:function (content) {    }};

工厂方法模式本意是将实际创建对象工作推迟到子类当中,这样核心类就成了抽象类,但是JavaScript没有像传统创建类那样的方式轻易创建抽象类,所以在JavaScript中实现工厂方法模式只需要参考其核心思想即可。可以将工厂方法看作是一个实例化对象的工厂类,安全起见,采用安全模式类,将创建对象的基类放在工厂方法类的原型中即可。

转载地址:http://wroox.baihongyu.com/

你可能感兴趣的文章
ssh-keygen -t rsa -f cloud.key ssh -i cloud.key <username>@<instance_ip>
查看>>
培训机构管理系统帮助机构解决管理问题
查看>>
我的友情链接
查看>>
C# 创建邮件合并模板并合并文本、图片
查看>>
DISCUZ官方论坛模仿开发日志(二)
查看>>
python基础(八)——多线程
查看>>
Java设计模式系列之策略模式
查看>>
12个国外优秀.Net开源项目(转)
查看>>
Expression Blend 4 激活
查看>>
将java项目转换成Web项目
查看>>
mysql 原理 ~ LRU 算法与buffer_pool
查看>>
个人经验~ 利用5.7的sys库更好的排查问题
查看>>
(转) ACM必备(学完一个就加亮一个)不多,就这些!
查看>>
数字图像处理中所用数学工具4---集合、逻辑操作与模糊集合
查看>>
java学习之租车系统
查看>>
【杭电ACM】1004 Let the Balloon Rise
查看>>
2018年5月26日笔记
查看>>
arcgis裁剪失败
查看>>
《高性能MySQL》--复制笔记
查看>>
3.07 检测两个表中是否有相同的数据
查看>>