工厂方法模式

Posted guangzhou11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工厂方法模式相关的知识,希望对你有一定的参考价值。

简单工厂模式违背了开闭原则,扩张性不好

工厂方法模式 :
有需求就去创建工厂
新工厂继承工厂类
这样避免修改其他工厂

把操作对象改变成操作各自的工厂

技术图片

 

 

class Animal  {
    constructor(name)  {
        this.name=name;
    }
    eat() {
         console.log(吃什么呀)
    }
}
class  Dog  extends  Animal {
  constructor(name)  {
       super(name);
       this.call=汪汪
  }
}

class  Cat  extends  Animal {
  constructor(name)  {
       super(name);
       this.call=喵喵
  }
}

class DogFactory{
    create() {
        return new Dog(xiao);
    }
}

class CatFactory{
    create() {
        return new Cat(wei);
    }
}

 
 const settings={
    dog: DogFactory,
    cat: CatFactory
}
let dog=new settings[dog]().create();
console.log(dog);
let cat=new settings[cat]().create();
console.log(cat);

 

以上是关于工厂方法模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式-简单工厂工厂方法模式抽象工厂模式详解

工厂方法模式

设计模式-工厂方法模式(Go实现)

C++工厂模式(简单工厂工厂方法抽象工厂)

C++工厂模式(简单工厂工厂方法抽象工厂)

设计模式---工厂模式