一下工厂模式的优点,好啦~~
<pre class="brush:js;">
// logger/index.js
import ConsoleLogger from './console.js'
import FileLogger from './file.js'
const loggerMap = {
console: ConsoleLogger,
file: FileLogger
}
// 可选参数一般放在最后面
function createLogger(options, type = 'console') {
const Logger = loggerMap[type]
if (Logger) {
return new Logger(options)
}
throw new Error(Logger type not found: ${type}
)
}</pre>
上面这种封装的方式,其实也符合 SOLID 原则中的 开闭原则js 抽象工厂模式js 抽象工厂模式,即 对扩展开放,对修改关闭,每当我们添加一种 logger 类型时,只需要新增一个文件,然后将构造器注册进 loggerMap 中即可。而外面的使用方式都是不变的,这样就用最少的修改完成了功能的新增,是不是很棒呀~总结
下面我们来回顾一下工厂模式的优点:
好啦~!工厂模式就介绍到这里啦~ 下次我们讲一讲装饰器模式~
参考内容
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:测试上述代码运行效果。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
发表评论
热门文章
Spimes主题专为博客、自媒体、资讯类的网站设计....
一款个人简历主题,可以简单搭建一下,具体也比较简单....
仿制主题,Typecho博客主题,昼夜双版设计,可....
用于作品展示、资源下载,行业垂直性网站、个人博客,....
Z.
4天前
博主你好,Deng插件,这个点击不进去,提示这个(Warning: require_once(/www/wwwroot/w.zzy2020.com/usr/plugins/Deng/Deng/html/profile.php): failed to open stream: No such file or directory in /www/wwwroot/w.zzy2020.com/Fresh/extending.php on line 26
Fatal error: require_once(): Failed opening required '/www/wwwroot/w.zzy2020.com/usr/plugins/Deng/Deng/html/profile.php' (include_path='.:/www/server/php/72/lib/php') in /www/wwwroot/w.zzy2020.com/Fresh/extending.php on line 26)