工厂模式(Factory Pattern)是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程。由于 ECMAScript 5 中还无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节

    工厂模式的作用

    • 把实现相同功能的代码进行封装,以此来实现批量生产(后期想要实现这个功能,我们只需要执行函数即可)

    • 低耦合,高内聚:减少页面中冗余的代码,提高代码的重复利用率

    1. function createPerson(name, age, job) {
    2. var o = new Object();
    3. o.name = age;
    4. o.job = job;
    5. o.sayName = function () {
    6. alert(this.name);
    7. };
    8. return o;
    9. }
    10. var person1 = createPerson("Nicholas", 29, "Software Engineer");
    11. var person2 = createPerson("Greg", 27, "Doctor");

    函数 createPerson() 能够根据接受的参数来构建一个包含所有必要信息的 Person 对象,可以无数次调用这个函数,而每次它会返回一个包含三个属性一个方法的对象。

    工厂模式虽然解决了创建多个相似对象的问题,但是没有解决对象识别的问题,即怎么知道一个对象的类型。