Domů » Informatika » Objektové programování » Návrhový vzor » Tovární třída (Factory)

Tovární třída (Factory)

TODO

UML diagramy

diagram tříd

Související vzory
Příklad
Rozhraní produktu

kód v jazyce Java - Zobrazit

  1. /**
  2.  * Obecný dopravní prostředek.
  3.  *
  4.  * @author Vojtěch Hordějčuk
  5.  */
  6. public interface Vehicle
  7. {
  8.   // ...
  9. }
Konkrétní produkty

kód v jazyce Java - Zobrazit

  1. /**
  2.  * Osobní automobil.
  3.  *
  4.  * @author Vojtěch Hordějčuk
  5.  */
  6. public class Car implements Vehicle
  7. {
  8.   // ...
  9. }
  10.  
  11. /**
  12.  * Nákladní vůz.
  13.  *
  14.  * @author Vojtěch Hordějčuk
  15.  */
  16. public class Truck implements Vehicle
  17. {
  18.   // ...
  19. }
Tovární třídy

kód v jazyce Java - Zobrazit

  1. /**
  2.  * Tovární třída, která vytváří instance automobilů.
  3.  *
  4.  * @author Vojtěch Hordějčuk
  5.  */
  6. public class CarFactory
  7. {
  8.   public Vehicle createVehicle(int wheels)
  9.   {
  10.     switch (wheels)
  11.     {
  12.       case 4:
  13.         return new Car();
  14.       case 10:
  15.         return new Truck();
  16.       default:
  17.         throw new IllegalArgumentException();
  18.     }
  19.   }
  20.  
  21.   public Vehicle createBigVehicle()
  22.   {
  23.     return new Truck();
  24.   }
  25.  
  26.   public Vehicle createSmallVehicle()
  27.   {
  28.     return new Car();
  29.   }
  30. }
Test

kód v jazyce Java - Zobrazit

  1. public static void main(String[] args)
  2. {
  3.   // vytvořit tovární třídu
  4.  
  5.   CarFactory factory = new CarFactory();
  6.  
  7.   // požádat tovární třídu o vytvoření produktů
  8.  
  9.   Vehicle smallCar = carFactory.createSmallVehicle();
  10.   Vehicle bigCar = carFactory.createBigVehicle();
  11.   Vehicle smallCar2 = shipFactory.createVehicle(4);
  12.   Vehicle bigCar2 = shipFactory.createVehicle(10);
  13. }

Reference