I have abstract class-factory Factory with factory-method getProduct() and his child classes.
I have abstract class-product Product and his child classes.
Classes-factories created objects of classes-products.
abstract class Factory {
abstract function getProduct();
}
class FirstFactory extends Factory {
public function getProduct() {
return new FirstProduct();
}
}
abstract class Product {
};
class FirstProduct extends Product {
}
In result I can use this client code:
$factory = new FirstFactory();
$firstProduct = $factory->getProduct();
$factory = new SecondFactory();
$secondProduct = $factory->getProduct();
Question: what for this pattern is necessary? Because in client code I just can use direct classes:
$firstProduct = new FirstProduct();
$secondProduct = new SecondProduct();
Aucun commentaire:
Enregistrer un commentaire