Tovární třída (Factory)
TODO
UML diagramy
Související vzory
Příklad
Rozhraní produktu
kód v jazyce Java - Zobrazit
-
/**
-
* Obecný dopravní
prostředek.
-
*
-
* @author Vojtěch
Hordějčuk
-
*/
-
public interface Vehicle
-
{
-
// ...
-
}
Konkrétní produkty
kód v jazyce Java - Zobrazit
-
/**
-
* Osobní automobil.
-
*
-
* @author Vojtěch
Hordějčuk
-
*/
-
public class
Car implements Vehicle
-
{
-
// ...
-
}
-
-
/**
-
* Nákladní vůz.
-
*
-
* @author Vojtěch
Hordějčuk
-
*/
-
public class
Truck implements Vehicle
-
{
-
// ...
-
}
Tovární třídy
kód v jazyce Java - Zobrazit
-
/**
-
* Tovární třída, která
vytváří instance automobilů.
-
*
-
* @author Vojtěch
Hordějčuk
-
*/
-
public class
CarFactory
-
{
-
public Vehicle
createVehicle(int
wheels)
-
{
-
switch (wheels)
-
{
-
case 4:
-
return
new Car();
-
case 10:
-
return
new Truck();
-
default:
-
throw
new IllegalArgumentException();
-
}
-
}
-
-
public Vehicle
createBigVehicle()
-
{
-
return new Truck();
-
}
-
-
public Vehicle
createSmallVehicle()
-
{
-
return new Car();
-
}
-
}
Test
kód v jazyce Java - Zobrazit
-
public static
void main(String[] args)
-
{
-
// vytvořit tovární
třídu
-
-
CarFactory factory = new
CarFactory();
-
-
// požádat tovární třídu o
vytvoření produktů
-
-
Vehicle smallCar = carFactory.createSmallVehicle();
-
Vehicle bigCar = carFactory.createBigVehicle();
-
Vehicle smallCar2 = shipFactory.createVehicle(4);
-
Vehicle bigCar2 = shipFactory.createVehicle(10);
-
}
Reference