È valido per inizializzare un'istanza di una classe all'interno della stessa classe?

1

Mi chiedevo se è valido inizializzare un'istanza di una classe all'interno della stessa classe? Ad esempio:

public class Person()
{ 
   string name;
   string age;
   public Person getPerson()
   { 
       Person p1=new Person();
       //some logic here
       return p1
    }
}

Ho finito per farlo per una parte del mio codice al lavoro e volevo sapere se ci sono potenziali problemi nel fare qualcosa del genere.

    
posta bachkoi32 31.07.2013 - 03:48
fonte

2 risposte

6

Sì, è valido.

Si chiama metodo factory.

La classe Calendar , per esempio ha un metodo getInstance() .

Questo è utile anche quando si implementa il modello Singleton .

Ecco una domanda dell'OMS su quando utilizzare un metodo factory.

    
risposta data 31.07.2013 - 03:58
fonte
1

Sì. Spesso fatto quando è necessario creare strutture grandi, dinamiche e automatiche come Trees:

class Tree {

  public IComparable Value;
  private Tree Left;
  private Tree Right;

  public Add (IComparable value) {
    if (this.Value == null) {
      this.Value = value;

      // RIGHT HERE!
      this.Left = new Tree();
      this.Right = new Tree();

    } else {
      if (value > this.Value) {
        this.Right.Add(value);
      } else {
        this.Left.Add(value);
      }
    }
  } // Add()

} // class Tree
    
risposta data 31.07.2013 - 05:08
fonte

Leggi altre domande sui tag