Tôi đã thấy một số dự án trong đó các lớp đang có và thiết lập các phương thức để thao tác chèn dữ liệu. Hãy để tôi có ví dụ tại đây:Có đáng để tạo và thiết lập các phương thức trong OOP?
class Student extends dbClass
{
private $TableID;
private $FullName;
private $Gender;
private $Address;
function setTableID($Value)
{
$this->TableID = $Value;
}
function getTableID()
{
return $this->TableID;
}
function setFullName($Value)
{
$this->FullName = $Value;
}
function getFullName()
{
return $this->FullName;
}
function setGender($Value)
{
$this->Gender = $Value;
}
function getGender()
{
return $this->Gender;
}
function setAddress($Value)
{
$this->Address = $Value;
}
function getAddress()
{
return $this->Address;
}
function UpdateStudent()
{
$sql = "UPDATE INTO usertable SET
FullName = '".$this->getFullName()."',
Gender = '".$this->getGender()."',
Address = '".$this->getAddress()."'
where TableID='".$this->getTableID()."'";
$this->query($sql);
}
}
Đây là lớp mẫu mà tôi đã thấy. Và bên dưới là quy trình cách họ đang sử dụng:
$student = new Student;
$student->setTableID = 1;
$student->setFullName('My Name');
$student->setGender('Male');
$student->setAddress('this is my address');
$studen->UpdateStudent();
Có đáng làm theo cách này không? Cá nhân tôi nghĩ rằng nó vô ích để thiết lập lĩnh vực và sau đó nhận được và cập nhật hồ sơ trong đó. Nó thực sự mất rất nhiều thời gian để làm cho nó cho mỗi mô-đun. Cách tốt nhất để xử lý những điều như vậy là gì? Có bất kỳ bảo mật nào liên quan đến việc đó theo cách này không?
Công cụ sửa đổi truy cập (như 'riêng tư ') thường bị hiểu sai là tính năng bảo mật. Trong hiện thân C++ hiện tại của chúng, chúng thực sự có ý định hạn chế tiếp xúc ABI (không phải API); đó không phải là có liên quan đến PHP và ngôn ngữ kịch bản thực sự. Do đó, những người định cư và getters cần thiết thường là một tác dụng phụ, nhưng nó không phải là rất hướng đối tượng. Xem thêm [PHP Getters và setters: tà ác hay ác quỷ cần thiết?] (Http://berryllium.nl/2011/02/getters-and-setters-evil-or-necessary-evil/) và [Java: Getters and setters are ác] (http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html) – mario
có thể trùng lặp của [Có thực sự là sai không sử dụng setters và getters?] (http://stackoverflow.com/questions/808348/is-it-really-that-wrong-not-using-setters-and-getters) – mario