Cet article résume principalement l'expérience et le résumé de l'auteur lors de l'apprentissage de JSAbstract Factory Pattern Il existe JS analyse du code source, oui JS<.>Si vous êtes intéressé, suivez-nous et apprenez.
Voici les problèmes et exemples de code rencontrés par l'auteur au cours de son étude. Enfin, il résume également votre apprentissage sur le modèle d'usine abstraite JS. Le modèle Abstract Factory (Abstract Factory) utilise l'abstraction de classe pour rendre l'entreprise adaptée à la création d'un cluster de classes de produits sans être responsable des instances d'un certain type de produit. Il n'y a pas deconst Car = function() { } Car.prototype.getPrice = function() {return new Error('抽象方法不能调用')}
met en œuvre
pour Il existe un modèle de fabrique abstraite dans le langage objet . Premièrement, une classe abstraite est déclarée comme classe parent pour résumer les caractéristiques requises par un certain type de produit. La sous-classe qui hérite de la classe parent doit implémenter les méthodes. déclaré dans la classe parent pour implémenter la classe parent. Fonctions déclarées dans la classe :
/** * 实现subType类对工厂类中的superType类型的抽象类的继承 * @param subType 要继承的类 * @param superType 工厂类中的抽象类type */ const VehicleFactory = function(subType, superType) { if (typeof VehicleFactory[superType] === 'function') { function F() { this.type = '车辆' } F.prototype = new VehicleFactory[superType]() subType.constructor = subType subType.prototype = new F() // 因为子类subType不仅需要继承superType对应的类的原型方法,还要继承其对象属性 } else throw new Error('不存在该抽象类') } VehicleFactory.Car = function() { this.type = 'car' } VehicleFactory.Car.prototype = { getPrice: function() { return new Error('抽象方法不可使用') }, getSpeed: function() { return new Error('抽象方法不可使用') } } const BMW = function(price, speed) { this.price = price this.speed = speed } VehicleFactory(BMW, 'Car') // 继承Car抽象类 BMW.prototype.getPrice = function() { // 覆写getPrice方法 console.log(`BWM price is ${this.price}`) } BMW.prototype.getSpeed = function() { console.log(`BWM speed is ${this.speed}`) } const baomai5 = new BMW(30, 99) baomai5.getPrice() // BWM price is 30 baomai5 instanceof VehicleFactory.Car // true
. Résumé
Grâce à l'usine abstraite, vous pouvez créer des produits d'un certain cluster de classes, et vous pouvez également utiliser instanceof pour vérifier la catégorie de produits, et également disposer des méthodes nécessaires pour ce cluster de classes .Recommandations associées :
modèle d'usine abstrait javascript description détaillée_compétences javascript
Introduction au modèle d'usine abstrait des modèles de conception JavaScript_compétences javascript
Comment tester JS la vitesse de réponse d'ouverture du site Web cible
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!