Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // constructor abstracto
- abstract class AbstractFactory
- {
- // el tipo que devolverá esta función factory será EjemploAbstracto
- abstract public function FactoryEjemplo(...$params);
- // el tipo que devolverá esta función factory será OtroEjemploAbsracto
- abstract public function FactoryOtroEjemplo(...$params);
- }
- // constructor concreto
- class ConstructorConcreto extends AbstractFactory
- {
- public function FactoryEjemplo(...$params)
- {
- return new EjemploConcreto(...$params);
- }
- public function FactoryOtroEjemplo(...$params)
- {
- return new OtroEjemploConcreto(...$params);
- }
- }
- // ejemplo abstracto
- abstract class EjemploAbstracto { }
- // otro ejemplo abstracto
- abstract class OtroEjemploAbstracto { }
- // ejemplo concreto
- class EjemploConcreto extends EjemploAbstracto
- {
- public function __construct()
- {
- //...
- }
- }
- // otro ejemplo concreto
- class OtroEjemploConcreto extends OtroEjemploAbstracto
- {
- public function __construct()
- {
- //...
- }
- }
- $factory = new ConstructorConcreto();
- $ejemplo = $factory->FactoryEjemplo();
- $otroEjemplo = $factory->FactoryOtroEjemplo();
- // crear otros ejemplos
- $factory2 = new ConstructorConcreto();
- $ejemplo2 = $factory->FactoryEjemplo();
- $otroEjemplo2 = $factory->FactoryOtroEjemplo();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement