在數(shù)據(jù)庫中使用對(duì)象的好處
我們都知道如何從數(shù)據(jù)庫中獲取我們需要的行(記錄),讀取數(shù)據(jù),然后存取一些改動(dòng)。很明顯也很直接,在這個(gè)過程背后也沒有什么拐彎抹角的。然而對(duì)于我們使用面對(duì)對(duì)象的程序設(shè)計(jì)(OOP)來管理我們數(shù)據(jù)庫中的數(shù)據(jù)時(shí),這個(gè)過程就需要大大改進(jìn)一下了。這篇文章將對(duì)如何設(shè)計(jì)一個(gè)面對(duì)對(duì)象的方式來管理數(shù)據(jù)庫的記錄做一個(gè)簡單的描述。你的數(shù)據(jù)當(dāng)中的所有內(nèi)部邏輯關(guān)系將被封裝到一個(gè)非常條理的記錄對(duì)象,這個(gè)對(duì)象能夠提供專門(專一)的確認(rèn)代碼系統(tǒng),轉(zhuǎn)化以及數(shù)據(jù)處理。隨著Zend Engine2 和PHP5的發(fā)布,PHP開發(fā)者將會(huì)擁有更強(qiáng)大的面對(duì)對(duì)象的工具來輔助工作,這將使這個(gè)過程(面對(duì)對(duì)象地管理數(shù)據(jù)庫)更有吸引力。
以下列出了一些使用對(duì)象來描敘你的數(shù)據(jù)庫的有利方面:
1、存取方法(Accessor methods)將會(huì)使你對(duì)屬性的讀取和寫入過程做到完全的控制
2、每一級(jí)的每個(gè)記錄和屬性(的操作)都有確認(rèn)過程
3、從關(guān)系表中智能的獲取對(duì)象
4、重復(fù)使用的邏輯方法意味著所有的數(shù)據(jù)交互都要通過相同的基礎(chǔ)代碼(codebase),這將使維護(hù)變得更加簡單
5、代碼簡單,因?yàn)椴煌挠涗浀膬?nèi)部邏輯都已經(jīng)包含在各自所處的類(class)當(dāng)中,而不是繁瑣的庫(lib)文件
6、在手工編寫代碼和SQL查詢語句時(shí),出錯(cuò)的機(jī)會(huì)將更少
存取方法(Accessor methods)
存取方式是通過類給實(shí)例(instance)的變量賦值。一個(gè)例子,我有一個(gè)叫User的類,并且有一個(gè)實(shí)例$username,我會(huì)寫這樣的存取方法(函數(shù)),User->username()和User->setUsername()用來返回和給實(shí)例賦值。
<?php
class User {
var $username;
function username() {
return $this->username;
}
function setUsername($newUsername) {
$this->username = $newUsername;
}
}
?>
這里有很好的理由讓我們編寫這樣的“特別的代碼”。它將使開發(fā)者更靈活的改變類的繁瑣的工作,因?yàn)檫@一過程將不需要其他的使用類的php代碼。讓我們來看看下面這個(gè)更加完善的可信賴的User類。
變量$username將不復(fù)存在,所有的東西都被整合的放在數(shù)組$_data當(dāng)中
如果username是空的話,username()函數(shù)將提供一個(gè)缺?。J(rèn))的值給它
setUsername()過程將在接受值之前確認(rèn)username是否合乎標(biāo)準(zhǔn)格式(如字長等)
<?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
關(guān)于在數(shù)據(jù)庫中使用對(duì)象的好處就為大家總結(jié)這么多, 相信大家通過上文的學(xué)習(xí),對(duì)在數(shù)據(jù)庫中使用對(duì)象的好處有所了解,大家可以在以后的工作中在數(shù)據(jù)庫中使用對(duì)象,相信這樣會(huì)給大家的工作帶來很多的便利,最后,希望大家都能夠從上文中涉及到的內(nèi)容中有所收獲。




















