工厂模式(Factory Pattern):

定义:定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行。  
目的:工厂模式是为了解耦,把对象的创建和使用的过程分开。
场景:需要生成复杂对象,需要降低耦合度的场景。

例子:JS代码实现 

let operationFactory = {
createOperate (operate) {
let oper = null
switch (operate) {
case '+':
oper = new operationFactory.OperationAdd()
break
case '-':
oper = new operationFactory.OperationSub()
break
case '*':
oper = new operationFactory.OperationMul()
break
case '/':
oper = new operationFactory.OperationDiv()
break
}
},
OperationAdd () {
// TODO run the addition operation
},
OperationSub () {
// TODO run the subtraction operation
},
OperationMul () {
// TODO run the multiplication operation
},
OperationDiv () {
// TODO run the division operation
}
}

Git地址:https://github.com/skillnull/Design-Mode-Example

最新文章

  1. ArcGIS Engine开发前基础知识(2)
  2. scrollView滚动原理
  3. jq 实现上下排序的一段代码
  4. 实现iOS图片等资源文件的热更新化(四): 一个最小化的补丁更新逻辑
  5. ORA-00030: User session ID does not exist.
  6. taglib
  7. 特征的转换规则 Transfer Routione
  8. 【转载】主数据管理(MDM)与元数据管理
  9. FPGA学习之基本结构
  10. 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.10.Button 和 Autocomplete控件
  11. android 开发上传图片遇到返回 FileNotFoundException
  12. ORACLE 小写金额转大写金额
  13. opensuse13.1 双屏幕扩展
  14. orcl改变临时表空间的指令
  15. 【转载】将python脚本打包成exe文件
  16. Laravel Cache 使用
  17. ucloud mysql
  18. 图像检索(6):局部敏感哈希索引(LSH)
  19. sql查询表中重复数据个数
  20. C++进阶--命名空间和关键字using

热门文章

  1. kafka原理和实践
  2. rtmp协议分析
  3. Mybaits多个参数的传递
  4. C# Setting.settings . 用法 2 使用配置文件(.settings、.config)存储应用程序配置
  5. OpenStack 实现技术分解 (6) 通用库 — oslo_log
  6. Python Requests post方法中data与json参数问题
  7. python每日一练:0014题
  8. 【Qt开发】设置Qt应用程序图标
  9. JDK,JRE,JVM的区别与联系?
  10. 第8周课程总结&实验报告6