工厂模式

介绍
  • 将new操作单独封装
  • 遇到new时,就要考虑是否该使用工厂模式
示例
  • 你去购买汉堡,直接点餐、取餐,不会自己亲手做
  • 商店要“封装”做汉堡的工作,做好直接给买者
简化后的UML类图
工厂模式-UML类图.jpg
工厂模式常见使用场景
  • jQuery的函数$(),内部创建了新对象
  • React.createElement
  • vue异步组件
举例

jQuery

  • ('div')和new('div')有何区别?
  • 第一:书写麻烦,jQuery的链式操作将成为噩梦
  • 第二:一旦类名jQuery发生变化,将是灾难性的
代码
class Product {
    constructor(name) {
        this.name = name;
    }

    init() {
        alert('init');
    }

    fun1() {
        alert('fun1');
    }

    fun2() {
        alert('fun2');
    }
}

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

// 测试
let creator = new Creator();
let p = creator.create('p1');
p.init();
p.fun1();
个人总结

工厂模式主要用在需要频繁创建新对象的时候,以及多处需要创建新对象的时候。使用工厂模式可以避免类名改动造成需要大量修改代码的情况。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容