简而言之,比较三者的最简单方法是什么?
方法与特质vs门面
干杯!
答案 0 :(得分:5)
他们没有真正比较,因为他们真的是不同的东西。
方法是属于类的函数。
class MyClass
{
public function this_is_a_method() { }
}
特征是一种在类之间共享代码的方法。特征不能被实例化,而是包含在另一个类中。类和特征都可以定义方法。
trait MyTrait
{
public function this_is_a_method() { }
}
既然我有这个特性,我可以更新MyClass
来使用这个特性。
class MyClass
{
use MyTrait;
}
您可以将特征视为复制和粘贴。现在MyClass
复制MyTrait
中定义的方法,以便您可以执行此操作。
$class = new MyClass();
$class->this_is_a_method();
方法和特征都是PHP的特性。外墙是Laravel的特色。外墙只是语法糖,有助于将服务从集装箱中取出。