以下列出了一些使用對象來描敘你的數據庫的有利方面:
1、存取方法(Accessor methods)將會使你對屬性的讀取和寫入過程做到完全的控制
2、每一級的每個記錄和屬性(的操作)都有確認過程
3、從關系表中智能的獲取對象
4、重復使用的邏輯方法意味著所有的數據交互都要通過相同的基礎代碼(codebase),這將使維護變得更加簡單
5、代碼簡單,因為不同的記錄的內部邏輯都已經包含在各自所處的類(class)當中,而不是繁瑣的庫(lib)文件
6、在手工編寫代碼和SQL查詢語句時,出錯的機會將更少
存取方法(Accessor methods)
存取方式是通過類給實例(instance)的變量賦值。一個例子,我有一個叫User的類,并且有一個實例$username,我會寫這樣的存取方法(函數),User->username()和User->setUsername()用來返回和給實例賦值。
<?php
class User {
var $username;
function username() {
return $this->username;
}
function setUsername($newUsername) {
$this->username = $newUsername;
}
}
?>
這里有很好的理由讓我們編寫這樣的“特別的代碼”。它將使開發者更靈活的改變類的繁瑣的工作,因為這一過程將不需要其他的使用類的php代碼。讓我們來看看下面這個更加完善的可信賴的User類。
變量$username將不復存在,所有的東西都被整合的放在數組$_data當中
如果username是空的話,username()函數將提供一個缺。J)的值給它
setUsername()過程將在接受值之前確認username是否合乎標準格式(如字長等)
<?php
class User {
var $_data = array(); // associative array containing all the attributes for the User
function username() {
return !empty($this->_data[\'username\']) ? $this->_data[\'username\'] : \'(no name!)\';
}
function setUsername($newUsername) {
if ($this->validateUsername($newUsername)) {
$this->_data[\'username\'] = $newUsername;
}
}
function validateUsername(&$someName) {
if (strlen($someName) > 12) {
throw new Exception(\'Your username is too long\
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/