SHOW:
|
|
- or go back to the newest paste.
1 | <?php | |
2 | ||
3 | // constructor abstracto | |
4 | abstract class AbstractFactory | |
5 | - | // el tipo que devolverá esta función factory será ejemplo abstracto |
5 | + | |
6 | - | abstract public function FactoryMethod(...$params); |
6 | + | // el tipo que devolverá esta función factory será EjemploAbstracto |
7 | abstract public function FactoryEjemplo(...$params); | |
8 | // el tipo que devolverá esta función factory será OtroEjemploAbsracto | |
9 | abstract public function FactoryOtroEjemplo(...$params); | |
10 | } | |
11 | ||
12 | - | public function FactoryMethod(...$params) |
12 | + | |
13 | class ConstructorConcreto extends AbstractFactory | |
14 | { | |
15 | public function FactoryEjemplo(...$params) | |
16 | { | |
17 | return new EjemploConcreto(...$params); | |
18 | } | |
19 | ||
20 | public function FactoryOtroEjemplo(...$params) | |
21 | { | |
22 | return new OtroEjemploConcreto(...$params); | |
23 | } | |
24 | } | |
25 | ||
26 | // ejemplo abstracto | |
27 | abstract class EjemploAbstracto { } | |
28 | ||
29 | // otro ejemplo abstracto | |
30 | abstract class OtroEjemploAbstracto { } | |
31 | ||
32 | - | $ejemplo = $factory->FactoryMethod(); |
32 | + | |
33 | ||
34 | class EjemploConcreto extends EjemploAbstracto | |
35 | { | |
36 | public function __construct() | |
37 | { | |
38 | //... | |
39 | } | |
40 | } | |
41 | ||
42 | // otro ejemplo concreto | |
43 | ||
44 | class OtroEjemploConcreto extends OtroEjemploAbstracto | |
45 | { | |
46 | public function __construct() | |
47 | { | |
48 | //... | |
49 | } | |
50 | } | |
51 | ||
52 | $factory = new ConstructorConcreto(); | |
53 | $ejemplo = $factory->FactoryEjemplo(); | |
54 | $otroEjemplo = $factory->FactoryOtroEjemplo(); | |
55 | ||
56 | // crear otros ejemplos | |
57 | $factory2 = new ConstructorConcreto(); | |
58 | $ejemplo2 = $factory->FactoryEjemplo(); | |
59 | $otroEjemplo2 = $factory->FactoryOtroEjemplo(); |