0

我正在编写一个有很多 getter 和 setter 的类,并且想知道人们对以下内容的看法:

正常的方法是编写如下代码:

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; }

我以原始方式做这件事没有问题,因为它应该这样做。它似乎在我的 classon 函数中占据了很多空间,这些空间在它们的作用中非常明显。

提前致谢。

4

4 回答 4

5

如果它们是一致的、明显的和直观的,单行条件块就很好,尽管我鼓励它们仔细间隔,以便立即明显它们是函数而不是单行代码!

于 2009-06-23T09:31:21.043 回答
1

我会选择“单线”变体。但前提是它所做的只是设置和获取一个值如果您添加对 null 或任何其他验证的检查,或者执行除获取或设置之外的任何操作,我将使用第一个和更长的变体以保持代码更具可读性。

于 2009-06-23T09:35:30.817 回答
1

我通常以与其他方法相同的方式威胁单线方法。如果这意味着它更具可读性和可维护性,我不介意我的源代码更长。

我还建议查看以下文档 http://framework.zend.com/manual/en/coding-standard.html 恕我直言,这是迄今为止最好的 PHP 编码标准参考。

于 2009-06-23T09:49:31.133 回答
0

我认为 PHP5 的魔术 getter/setter 在处理大量 getter/setter 时非常有用。

http://fr.php.net/manual/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;
  }
}
?> 
于 2009-06-23T09:34:52.503 回答