Que sont exactement les usines dans Angular(2+) ?
Usine est l'un des modèles de conception mentionnés par Gang of Four (en fait, ils ont écrit un livre sur les modèles de conception qu'ils ont découverts).
Modèles de conception aident les programmeurs à résoudre des tâches de développement courantes d'une manière spécifique.
Et dans ce cas, le Usine aide à l'instanciation et à la création d'objets.
Il est également connu sous le nom de constructeur virtuel.
Pensez-y, comme ceci :
Supposons que vous créez un jeu de tir en 2D et que vous devez tirer des balles à partir de barils.
Au lieu d'instancier des balles comme new Bullet()
Si l'on veut créer des balles, à chaque fois que l'on appuie sur la gâchette, on peut utiliser une usine pour créer des balles, c'est-à-dire WeaponsFactory.createInstance(BulletTypes.AK47_BULLET)
.
Il devient très évolutif, puisqu'il suffit de modifier l'énumération pour que la fabrique le fasse pour vous.
Vous n'aurez pas à l'instancier manuellement.
C'est ce que fait angular, il crée automatiquement des usines pour tous les composants. Ce qui lui facilite la tâche.
Existe-t-il des scénarios pour lesquels un développeur a intérêt à savoir comment ils fonctionnent ?
Il n'est pas nécessaire de connaître les rouages d'une Factory pour utiliser Angular, mais elle est utile pour créer des composants de manière dynamique !
Par exemple, de nombreux *ngIf ou *ngSwitchCase peuvent être remplacés par une simple génération dynamique de composants.
Les composants peuvent être créés dynamiquement de la manière suivante :
createComponent(type) {
this.container.clear();
const factory: ComponentFactory = this.resolver.resolveComponentFactory(AlertComponent);
this.componentRef: ComponentRef = this.container.createComponent(factory);
}
Référence pour la compréhension du code ci-dessus : Création dynamique de composants