2010-11-18 7 views
2

Je fais un jeu en AS3 en utilisant flash développer et flash cs5. Tout est orienté objet. Je me demandais, devrais-je avoir une classe "gateway" qui a une référence de propriété à toutes les instantiations d'autres classes, et je passe juste cette classe de passerelle à de nouveaux objets, ainsi ils ont accès à chaque classe. Comme si:Flash As3 Jeu: Classe Question

var block:Block = new Block(gateway); 

//In the block class: 
this.gateway.player.setHealth(100); 
//Or: 
this.gateway.input.lock(); 

Est-ce comme un motif singleton ou quelque chose? Devrais-je faire ça?

Répondre

2

J'ai déjà utilisé cette idée auparavant. Je l'ai utilisé comme un modèle. le dataModel - ou un backbone efficace dont vous stocke vos objets - ou des références à vos objets. Ceci est utile car vous pouvez toujours trouver quelque chose sans marcher dans vos cours. Je l'ai utilisé comme un singleton - par conséquent, vous n'avez pas peur de créer potentiellement une nouvelle version de votre dataModel et référence des objets vierges. Kinda vous arrête de vous gratter la tête pendant des heures. Il ressemblerait à quelque chose comme ceci:

package com.strangemother.models.DataModel 
{ 
    private static var _dataModel:DataModel; 
    /** 
    an example of storing you items. 
    */ 
    public var character:Character; 

    public static function getInstance():DataModel 
    { 


    if(!_dataModel) 
     { 
    _dataModel= new DataModel(SingletonLock); 
    return _dataModel; 

    } 

public function DataModel(lock:Class) 
{ 
    if(!lock is SingletonLock) 
    { 
    throw new Error("DataModel is a singleton. Use DataModel.getInstance() to use."); 
    } 
} 
} 

Addition @AttackingHobo:

this is a one (1) this is the letter L lowercase (l) 
+0

DataModel ressemble à DataMode1. Je pensais juste que je le signalerais. – AttackingHobo

+0

Je n'ai pas dit que ça ressemblait exactement à DataMode1, mais ça ressemble à ça. :) – AttackingHobo

+0

oui bien - vous avez raison ... – Glycerine

1

Peut être une bonne approche pour essayer rapidement quelque chose, mais sur le long terme que l'objet passerelle deviendra si gigantesque et la relation entre les différents objets tellement qu'elle tombera sous son propre poids.

En outre, l'un des points de l'orientation de l'objet consiste à encapsuler l'accès des parties du code uniquement aux objets qui en ont besoin.