最近刚学到trait的用法,看了php.net和很多教学后已经对他有初步认识
不过还是有一些疑问想要请教...
我假设有一段程式码是使用trait的,像这样:
trait tFoo {
private function foo() {
//...
}
}
class Bar1 {
use tFoo;
public function bar() {
$this->foo();
//...
}
}
而有另外一段有相同作用的程式码,像这样:
class Foo { //用处与tFoo相同
public function foo() {
//...
}
}
class Bar2 { //用处与Bar1相同
private $foo;
public function bar() {
$this->foo = new Foo();
$this->foo->foo();
//...
}
}
想请问一下各位大大,以程式维护和易读性的角度来看,这两种做法的差别在哪呢?
还是以其他角度来看,有问题是我没有注意到的呢?