工厂模式
定义
工厂模式, 定义了一个创建对象的接口,由子类决定要实例化的类是哪一个,工厂方法将类的实例化推迟到子类。
简单工厂模式, 使用一个类来生成实例。
复杂工厂模式, 使用子类来决定一个成员变量应该是哪个具体的类的实例。
使用场景
创建一个需要被封装的新对象, 通过让子类决定需要创建哪个对象, 从而实现对象创建过程被封装的目的。
用于创建一个产品的实例, 创建对象的方法使用的是继承。
解决的问题
创建一个对象常常需要复杂的过程,可能会导致大量的重复代码,也可能提供不了足够级别的抽象。
创建对象习惯使用 new 关键字和类构造函数(主要还是对象字面量),问题在于这样会导致两个类之间产生依赖性。
工厂模式主要是消除两个类依赖性的模式。
优缺点
优点: 消除对象间的耦合,通过使用工程方法而不是new关键字, 实例化实现在子类, 防止代码重复。
缺点:
实现案例
常见实现方式
function Role () {
this.name = name;
}
Role.prototype
es6实现方式
function Role () {
this.name = name;
}
Role.prototype
转载于:https://www.cnblogs.com/hchiu/p/7928891.html