Domanda

Sono abbastanza nuovo durante la programmazione guidata da eventi e uso MVC, quindi perdonami se questa domanda sembra una non domanda.

Sto cercando di assegnare valori alla mia classe modello singleton (client). Ho 2 opzioni:

  1. Posso usare il costruttore della classe modello per assegnarsi a se stesso in questo modo:

    Cliente di classe {

         public var name;
         public var email;
    
         public function Client(arg_name, arg_email){
             this.name = arg_name;
             this.email = arg_email;
           } 
      }
    
  2. Posso usare il controller per assegnare i miei valori per me così:

    Class Controller{
         public var client:Client = new Client();
    
         public function assign(){
            client.name = "booo";
            client.email = "blaaah@email.com";
         }
    

    }

Quale di queste è una soluzione migliore? :) Il motivo per cui sono così confuso è perché ho visto esempi che passano solo valori alla classe modello e fanno #1 (e impostano nuove variabili come [var fullname = fname + lname], ma lo so per a Fatto che sia il compito del controller assegnare valori al modello.

È stato utile?

Soluzione

Meglio è relativo.

Il secondo esempio è ciò che viene comunemente chiamato "iniezione di proprietà".

Fondamentalmente la prima opzione è più rapida, più piccola e molto meno.

La seconda opzione è più leggibile e flessibile.

Indipendentemente dal controller, l'iniezione ha il vantaggio che è possibile creare getter e setter per ciascuna proprietà.

Quindi in pratica puoi avere qualcosa che accada come inviare un evento ogni volta che modifichi il valore della proprietà "Nome".

Il codice sorgente Flex è pieno di questo concetto. Ad esempio ogni volta che si modifica la larghezza di un gruppo, non modifica solo il valore, esegue i controlli e quindi imposta il gruppo come sporco in modo che altre cose possano reagire ad esso.

Fondamentalmente rende semplice avere tutto ciò che fa le sue cose ed è più orientato agli oggetti.

Tutto ciò non significa che sia effettivamente meglio, ma ora è più comune scrivere il codice nello stile della seconda opzione.

Spero possa aiutare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top