Domanda

Sto scrivendo una lezione che ha molti getter e setter e mi chiedevo cosa la gente pensasse di quanto segue:

Il modo normale è di codificare come il seguente:

public function setChangeSort($changeSort)
{
    self::$changeSort = $changeSort;
}

public function getChangeSort()
{
    return self::$changeSort;
}

Quali sono le tue opinioni su quanto segue:

public function setChangeSort($changeSort) { self::$changeSort = $changeSort; }
public function getChangeSort() { return self::$changeSort; }

Non ho problemi a farlo in modo originale, poiché è così che deve essere fatto. Sembra solo occupare molto spazio nelle mie funzioni classon che sono davvero ovvie in quello che fanno.

Grazie in anticipo.

È stato utile?

Soluzione

I blocchi condizionali a una riga vanno bene se sono coerenti, ovvi e intuitivi, anche se incoraggerei a spaziarli attentamente quindi è immediatamente ovvio che sono funzioni piuttosto che una singola riga di codice!

Altri suggerimenti

Vorrei andare con "una riga" variazione. Ma solo se tutto ciò che fa è impostare e ottenere un valore. se aggiungi un controllo per null o qualsiasi altra convalida, o fai qualcosa di diverso da ottenere o impostare andrei con la prima e più lunga variante per mantenere il codice più leggibile.

Di solito minaccio i metodi di una riga allo stesso modo degli altri metodi. Non mi dispiace che il mio codice sorgente sia N-line più a lungo se significa che è più leggibile e gestibile.

Vorrei anche suggerire di controllare il seguente documento http://framework.zend.com/manual/en/coding-standard. html IMHO è il miglior riferimento standard di codifica PHP disponibile finora.

Penso che i getter / setter magici di PHP5 siano davvero utili quando si ha a che fare con numerosi getter / setter.

http: // fr .php.net / manuale / it / language.oop5.overloading.php # language.oop5.overloading.members

E un esempio.

<?php
class A {
  private $properties = array();

  public function __set($key, $value) {
    if (is_array($value)) {
      $this->$key = $value;
    } else {
      $this->properties[$key] = $value;
    }
  }

  public function __get($key) {
    if (array_key_exists($key, $this->properties)) {
      return $this->properties[$key];
    }

    return null;
  }
}
?> 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top