Flash – Restreindre l’instanciation d’une classe par un seul objet

Posted on 01/10/2009 · Posted in AIR, Flash, Flex

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