使用包装类来隐藏函数

时间:2012-02-29 23:20:15

标签: php data-structures

我的一位同事喜欢封装类后面的所有PHP函数。他的理由似乎是,如果它在一个类中,如果它们更新代码就会更容易改变。在查看他的代码后我的担心是我不知道可能发生什么,或者为什么事情可能会出错。此外,如果它是在课堂形式,我更喜欢静态功能,因为在我看来,这将是更好的练习。

例如,而不是:

$var = filter_var('0755', FILTER_VALIDATE_INT);

他会:

class Filter {
     public function filterInt($var) {
           return filter_var($var, FILTER_VALIDATE_INT);
     }
}

$filter = new Filter();
$var = $filter->filterInt('0755');

哪种方式更好的做法?更好的长期表现?更好理解?

2 个答案:

答案 0 :(得分:1)

隐藏方法中的功能是一种很好的做法,Code Complete很好地解释了,为什么会这样。

如果您想更改filterInt,例如添加上限和下限,如果你已经封装它,你会更好。

  • 更少的代码行需要更改
  • 更容易测试
  • ..

答案 1 :(得分:0)

对于只有一个方法,例如你的例子,它没有多大意义。

如果您使用它来对所有过滤器功能进行分组,那么您可以拥有Filter::filterDeliveryAdress,然后,只要您必须过滤掉您可能已经记住的某些功能,就可以开始有意义了。因此,如果过滤函数的示例不够准确,您可以在类中修复它以在所有代码中修复它。

当然这里的静态功能会更好,它更容易使用。

如果我认为它仅用于分组相关功能和使用PHP> = 5.3,那么命名空间会更合适。