我有一个问题,长期以来一直在我脑海中盘旋。
我的模型类应该具有私有或公共属性?(以下代码是用 PHP 编写的,但问题一般适用于任何语言)
class Xyz extends Model {
public function __call() {
}
public $description;
public $title;
}
在上面的示例中,我有公共属性 $description 和 $title。我应该将它们设为私有吗?
我更新我的模型如下
$x = new Xyz();
$x->title('Hello');
$x->description('Blah blah');
$x->save();
我可以使用魔术方法 __call 更新和获取它们。那么,为什么我们需要将它们公开?我可以将它们设为私有。但正如我看到的所有框架都保持模型属性公开。
有什么想法吗?
更新:
在答案中,每个人都在说遵循封装并使用私有方法。很好,但没有人知道为什么某些 PHP 框架具有公开的模型属性?应该是有原因的吧?