欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

工厂模式与抽象工厂模式

程序员文章站 2024-01-20 15:45:10
...

工厂模式与抽象工厂模式

工厂模式

在创建对象的过程中, 不应该暴露创建的具体过程
只需要用户告诉想要什么就可以了.
比如下面的例子, 用户只需要选择买小瓶可乐或者大瓶就可以了

class Cola{
    constructor(material,volumn,price){
        this.material = material;
        this.volumn = volumn;
        this.price = price;
    }
}

class SmallCola extends Cola{
    constructor(){
        super("AL","250ml","¥2.5")
    }
}
class BigCola extends Cola{
    constructor(){
        super("Plastic","500ml","¥3")
    }
}

class Factory{
	static getCola(type){
	    if(type==='BigCola'){
	        return new BigCola();
	    }else if(type==='SmallCola'){
	        return new SmallCola();
	    }
	}
}
«Class» Cola string volumn string price string material SmallCola BigCola Factory getCola() extends extends

采用工厂模式, 符合程序设计的开闭原则1

抽象工厂模式

工厂的工厂

«Class» Cola string volumn string price string material SmallCola BigCola «Class» Car string price string brand BMW BYD «Class» AbstractFactory getFactory() CarFactory getCar() ColaFactory getCola() extends extends extends extends extends extends

参考:
菜鸟教程1
菜鸟教程2
为什么我们要面向接口编程?!


  1. 对扩展开放,对修改关闭 ↩︎