我有一個問題,自從長久以來我一直在腦海裏徘徊。模型類屬性應該是私人還是公共?
我的模型類應該有屬性私人或公共? (下面的代碼是用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來獲取值 –