No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Contrastemos: Abstract Factory en TS

15/27
Recursos

Aportes 4

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Typescript parece tener una autodocumentación en el código, definitivamente agrega más valor que vailla Js, sin olvidar que el código en TS va a caer a JS.

Sin duda alguna Typescript es un plus.

//Factory no aplica porque  hay maas de una familia de preoductos que se creara en la fabrica// 1 create base products clases/interfacesclass watterBottle {  toFill(){throw new Error('abstract')}}class wineBottle {  toFill(){throw new Error('abstract')}}// 2 (clases/interfaces) for each family of each product that are concreteclass watterGlassBottle extends watterBottle{  toFill(){  console.log('glass bottle has been fill with watter');}}class watterPlasticBottle extends watterBottle{  toFill(){    console.log('plastic bottle has been fill with watter');}   }class wineGlassBottle extends wineBottle{  toFill(){  console.log('glass bottle has been fill with wine');}}   class winePlasticBottle extends wineBottle { toFill(){  console.log('plastic bottle has been fill with wine');}}// 3 declare abstract factory that declares the creation methods for for each  base productclass abstractFactory{  createWatterBottle(){throw new Error('abstract')}  createWineBottle(){throw new Error('abstract')}}//4 create the actual fabsclass glassBottleFactory extends abstractFactory{  createWatterBottle(){return new watterGlassBottle()  }  createWineBottle(){return new wineGlassBottle()}}class plasticBottleFactory extends abstractFactory{  createWatterBottle(){return new watterPlasticBottle()  }  createWineBottle(){return new winePlasticBottle()}}/\*\* se mantienen los  beneficios de factory+ es mas extencible \* si la clase base hay que cambiarla, hay que cambiar todo \* usalo cuando la agrupacion en familias sea posible (glass /plastic \*/function createBottleFactory(type){  const factories={ plastic:plasticBottleFactory,    glass:glassBottleFactory   }  const Factory=factories\[type];  return new Factory (); } function appBottleFactory(Factory){const watter=Factory.createWatterBottle()const wine= Factory.createWineBottle()watter.toFill();wine.toFill();}appBottleFactory(createBottleFactory('plastic'));appBottleFactory(createBottleFactory('glass'));
Creo que sería mejor que las interfaces MastodonCar y RhinoCar tuvieran métodos diferentes para que tenga más sentido, ya que ambas interfaces tienen la misma firma del método.