我有一个问题,自从长久以来我一直在脑海里徘徊。模型类属性应该是私人还是公共?
我的模型类应该有属性私人或公共? (下面的代码是用PHP编写的,但问题通常适用于任何语言)
class Xyz extends Model {
public function __call() {
}
public $description;
public $title;
}
在上面的例子中我有公共属性$说明和$称号。我应该让他们私密吗?
更新我的模型如下
$x = new Xyz();
$x->title('Hello');
$x->description('Blah blah');
$x->save();
我可以更新和使用魔术方法__call得到他们。那么,为什么我们需要让他们公开?我可以把它们变成私人的。但是当我看到围绕模型属性公开的所有框架。
有什么想法?
UPDATE:
在答案,每个人都在说后续封装和使用私人的方法。好,但没有人有答案为什么一些PHP框架的模型属性是公开的?应该有一些理由,不是吗?
将所有属性保留为私有。要封装它们的值,使用getter和setter来获取值 –