js抽象工厂模式

        

第五章:出现的都是幻觉——抽象工厂模式

抽象工厂模式(Abstract Factory):通过对类的工厂抽象使其业务用于对产品类簇的创建,而不负责创建某一类产品的实例。

5.1: 带头模范——抽象类

javascript中abstract还是一个保留字,所以目前还不能像传统面向对象的语言那样请以创建。抽象类是一种声明但不能使用的类, 当你使用时就会报错,不过,javascript是灵活的,所以我们可以在类的方法中手动抛出错误来模拟抽象类。

我们看到我们创建的这个car类其实什么都不能做,创建时没有任何属性,然而原型prototype上的方法也不能用,否则会报错。

但在继承上是很有用的,因为定义了一个类,并定义了该类所必备的方法,如果子类没有重写这些方法,那么调用时能找到这些方法便会报错。 这一特点是很有必要的,因为在大型应用中,总会有一些子类继承父类,这些父类经常会定义一些必要的方法,却没有具体的实现。 那么子类创建了一个对象,该对象总是具备一些必要的方法,但如果这些必要的方法从父类继承过来而没有具体去重写实现,那么实例化对象便会调用父类中的 这些方法,如果父类能有一个很友好的提示,那么对于忘记重写子类这些错误遗漏的避免的很有帮助的。

这也是抽象类的一个作用,即定义一个产品簇,并声明一些必要的方法,如果子类没有去重写就会抛出异常。

幽灵工厂——抽象工厂模式

                 

忆之获

抽象工厂模式是设计模式中最抽象的一种,也是创建模式中唯一一种抽象化创建模式。该模式创建出来的结果不是一个真实的对象实例, 而是一个类簇,他制定了类的结构,这也就区别于简单工厂模式创建单一对象,工厂方法模式创建多类对象。当然由于JavaScript中不支持抽象化创建于虚拟方法, 所以到这种模式不能像其他面向对象语言中应用的那么广泛。


 
 

你可能感兴趣的:(js抽象工厂模式)