我看到(寫)大量的代碼被人看不起這樣的:爲什麼不能我只是使用公共財產,而不是在
class MyClass
{
private $_myProperty;
public function setMyPropert($myProperty)
{
$this->_myProperty = $myProperty;
}
public function getMyProperty()
{
return $this->_myProperty;
}
}
因爲我們被教導類的屬性應該始終是私有的。
但是,我真的只是想做到這一點在上述情形:
class MyClass
{
public $myProperty;
}
那更少的代碼,更易於閱讀。但其他開發人員會忽視這些代碼,很可能會導致代碼審查失敗等。即使不是這樣,我仍然不會這樣做,因爲害怕別人看到它並做出判斷。
爲什麼?這是否只是在oop代碼的開發者中根深蒂固?還是還有另一個原因,我錯過了,可能與測試,未來維護或其他非顯而易見的技術原因有關。我正在專門討論getter/setter注意更多get/set的場景。
http://stackoverflow.com/questions/1568091/why-use-getters-and-setters – Klaasvaak
好的問題再次。簡單但複雜的答案,特別是關注PHP。請繼續詢問。對於這裏我沒有時間回答,但我有強烈的感覺,這取決於對象的類型(值,助手,操作符,對象/不可變或不)。有了getter和setter往往可以防止你做出錯誤的決定,所以保留屬於某個對象的私有屬性(例如「屬性」)並不會太偏離軌道,並且使得你的代碼在某種程度上可以在PHP中得到證明。 – hakre