Вопрос

Я пишу класс, в котором много геттеров и сеттеров, и мне было интересно узнать, что люди думают о следующем:

Обычный способ - кодировать следующим образом:

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

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

Что вы думаете о следующих действиях?

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

У меня нет проблем сделать это оригинальным способом, так как это должно быть сделано. Кажется, это просто занимает много места в моих классных функциях, которые действительно очевидны в том, что они делают.

Заранее спасибо.

Это было полезно?

Решение

Однострочные условные блоки хороши, если они непротиворечивы, очевидны и интуитивно понятны, хотя я бы посоветовал осторожно их расставлять, чтобы сразу было очевидно, что они являются функциями, а не какой-то одной строкой кода!

Другие советы

Я бы пошел с " однострочным " изменение. Но только , если все, что он делает, это устанавливает и получает значение. если вы добавите проверку на null или любую другую проверку, или сделаете что-либо кроме получения или установки, я бы выбрал первый и более длинный вариант, чтобы сделать код более читабельным.

Я обычно угрожаю однострочным методам так же, как и другим методам. Я не возражаю против того, чтобы мой исходный код был длиннее на N строк, если это означает, что он более читабелен и удобен в обслуживании.

Я бы также предложил оформить следующий документ http://framework.zend.com/manual/en/coding-standard. HTML ИМХО, это лучший справочник по стандартному кодированию PHP, доступный на данный момент.

Я думаю, что магические методы получения / установки PHP5 действительно полезны при работе с многочисленными методами получения / установки.

http: // fr .php.net / ручной / EN / language.oop5.overloading.php # language.oop5.overloading.members

И пример.

<?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;
  }
}
?> 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top