工厂模式
告诉工厂类(工厂函数)要什么,就给你返回什么对象
例如:有一个生产水果的工厂会生产 '柠檬','苹果'
特点:
- 工厂类(工厂函数)里面有一个成员方法专门来反馈想要的水果品类 creatFruits()
- 工厂实例根据输入的不同返回不同产品类的实例,一般用来创建同一类对象
适用场景
-
如果你不想让某个子系统与较大的那个对象之间形成强耦合,而是想运行时从许多子系统中进行挑选的话,那么工厂模式是一个理想的选择
- 将new操作简单封装,遇到new的时候就应该考虑是否用工厂模式;
-
需要依赖具体环境创建不同实例,这些实例都有相同的行为,这时候我们可以使用工厂模式,简化实现的过程,同时也可以减少每种对象所需的代码量,有利于消除对象间的耦合,提供更大的灵活性
场景例子
-
JQuery的$()就是一个工厂函数,它根据传入参数的不同创建元素或者去寻找上下文中的元素,创建成相应的jQuery对象
- vue 的异步组件