你好世界
  • 入门
  • 框架
  • Webpack
  • 模式
  • 知识点
  • 面试题
  • Koa
  • Java
  • Python
  • MongoDB
  • Redis
  • Algorithm
  • AI 概述
  • 机器学习
  • 深度学习
  • 自然语言处理
  • 关键词说明
  • 使用技巧
  • 本地模型安装及下载
  • 调试
  • 测试
  • GIT
  • Network
  • Linux
  • VSCode
  • GitHub
  • Mock
  • 入门
  • 框架
  • Webpack
  • 模式
  • 知识点
  • 面试题
  • Koa
  • Java
  • Python
  • MongoDB
  • Redis
  • Algorithm
  • AI 概述
  • 机器学习
  • 深度学习
  • 自然语言处理
  • 关键词说明
  • 使用技巧
  • 本地模型安装及下载
  • 调试
  • 测试
  • GIT
  • Network
  • Linux
  • VSCode
  • GitHub
  • Mock
  • DesignMode

    • 设计模式
    • 面向对象
    • UML 类图
    • 设计原则
    • 面试题分析
    • 工厂模式
    • 单例模式
    • 适配器模式
    • 装饰器模式
    • 代理模式
    • 外观模式(网关?)
    • 观察者模式
    • 迭代器模式
    • 状态模式
    • 其它设计模式
  • SoftwareArchitecturePatterns

    • SoftwareArchitecturePatterns (软件架构模式)
    • MVVC
    • MVC
    • MVP

工厂模式

介绍

  • 将 new 操作单独封装;
  • 遇到 new 时,就要考虑是否该使用工厂模式;

示例

你去购买汉堡,直接点餐、取餐,不会自己亲手做; 商店要“封装”做汉堡的工作,做好直接给买者;

UML

示例-5
class Product {
  constructor(name) {
    this.name = name;
  }
  init(){
    console.log('init');
  }
  fun1(){
    console.log('fun1');
  }
  fun2(){
    console.log('fun2');
  }
}

class Creator {
  create(name) {
    return new Product(name);
  }
}

// 测试 
const creator = new Creator();
const p = creator.create("测试")
p.init();
p.fun1();

场景

  • jQuery $('div');
  • React.createElement;
  • vue 异步组件;
最后更新时间: 3/7/22, 9:11 PM
贡献者: DESKTOP-ER5718D\zt
Prev
面试题分析
Next
单例模式