什麼是資料存取物件模式?
資料存取物件設計模式描述如何建立提供透明存取任何資料的物件。
資料存取物件模式應用問題與解決方案
#對於同時學過PHP和MySQL的人來說,資料存取物件設計模式是一個全新的和令人興奮的概念。這種設計模式的目的是解決下列兩種特定的問題:重複與資料來源抽象化。
我們應該建立一個資料存取物件設計模式的物件。這個資料存取物件封裝了創建sQL呼叫、減少實例創建的複雜性和重複以及更新進程的智慧方式,其編寫方式應是:該物件的使用者不會知道實際使用的表結構和資料庫引擎。此外,這個物件應用的方法應使用邏輯參數,並且應處理SQL語句的建立工作。
資料存取物件模式的額外優點是提供資料庫抽象層級。現在,應用程式的主要處理程式碼不再需要考慮資料庫引擎或表格關係。呼叫這種物件的公共方法會傳回任何資料類型,且不用考慮內在SQL所需的類型。
管理資料存取物件類別中簡單性的一個好方法是建立父-子關係。首先,建立一個基本的父物件。這個物件應負責資料庫連線、抽像地執行查詢以及與子物件通訊。使用資料存取物件設計模式時,最好開始就將一對一關係的子類別與資料庫中的表格相關聯。這些子類別具有必不可少的訊息,如表名和主鍵。此外,子類別可能包含一些特定的公共方法,這些方法透過只對子類別有意義的方式執行父類別的查詢。例如,名為userAddress的子類別可能包含一個getAddreddesByZip()方法。將該方法放入父DAO類別是毫無邏輯意義的,並且會破壞這個父類別希望實現的抽象性。
在處理引用特定資料庫資訊的實體時,最好的做法是建立資料存取物件。
<?php //数据访问对象模式 //将数据库访问层脱离出来 作为公用的访问接口,方便用户开放,是php中常用的一种设计模式 class BaseDao { private $db; public function __construct($config) { $this->db = mysql_connect($config['user'], $config['pass'], $config['host']); mysql_select_db($config['database'], $this->db); } public function query($sql) { return mysql_query($sql, $this->db); } }
程式碼:UserDao 使用者資料表的資料操作,繼承BaseDao
<?php include("UserDao.php"); class UserDao extends BaseDao { public function addUser() { $sql = "INSERT INTO user (username) VALUES ('initphp')"; return $this->query($sql); } } $UserDao = new UserDao; $UserDao->addUser();
以上是php物件導向進階設計模式:資料存取物件模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!