Comment restreindre l’instanciation d’une classe à une autre classe.
Voici une idée complètement “crazy” au quelle je vais apporter une solution à travers ce billet.
Nous allons utiliser un principe connu par de nombreux framework Web qui permet d’assurer la validité d’un formulaire: Le jeton !
L’intérêt étant de combiner cela avec le pattern Factory.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | public class Master { private static var _jeton : Number = -1; public function Master() { } public static function createSlave () : Slave { var _tmpSlave : Slave; _jeton = Math.random() * 500; _tmpSlave = new Slave (_jeton); _jeton = -1; return _tmpSlave; } public static function get jeton () : Number { return _jeton; } } |
1 2 3 4 5 6 7 8 | public class Slave { public function Slave(_pJeton : Number = 0) : void { if (Master.jeton !== _pJeton && Master.jeton !== -1) throw new Error ("Instanciation obligatoire par Master.createSlave"); } } |
1 2 | new Slave (); //throw Error Master.createSlave (); //Retourne un objet du type Slave |
Coucou,
AH ! Je me demandais comment faire la même chose proprement avec Php huhu…merci !
La bise, Joseph.
Ps: la bise à tout le monde de ma part 😉
Plutôt interessant ! Je vais essayer.
C’est le principe du pattern singleton non ?