首頁 >後端開發 >php教程 >php物件導向進階設計模式:資料存取物件模式

php物件導向進階設計模式:資料存取物件模式

巴扎黑
巴扎黑原創
2017-05-22 09:48:581571瀏覽

什麼是資料存取物件模式?

資料存取物件設計模式描述如何建立提供透明存取任何資料的物件。

資料存取物件模式應用問題與解決方案

#對於同時學過PHP和MySQL的人來說,資料存取物件設計模式是一個全新的和令人興奮的概念。這種設計模式的目的是解決下列兩種特定的問題:重複與資料來源抽象化。

我們應該建立一個資料存取物件設計模式的物件。這個資料存取物件封裝了創建sQL呼叫、減少實例創建的複雜性和重複以及更新進程的智慧方式,其編寫方式應是:該物件的使用者不會知道實際使用的表結構和資料庫引擎。此外,這個物件應用的方法應使用邏輯參數,並且應處理SQL語句的建立工作。

        資料存取物件模式的額外優點是提供資料庫抽象層級。現在,應用程式的主要處理程式碼不再需要考慮資料庫引擎或表格關係。呼叫這種物件的公共方法會傳回任何資料類型,且不用考慮內在SQL所需的類型。

 管理資料存取物件類別中簡單性的一個好方法是建立父-子關係。首先,建立一個基本的父物件。這個物件應負責資料庫連線、抽像地執行查詢以及與子物件通訊。使用資料存取物件設計模式時,最好開始就將一對一關係的子類別與資料庫中的表格相關聯。這些子類別具有必不可少的訊息,如表名和主鍵。此外,子類別可能包含一些特定的公共方法,這些方法透過只對子類別有意義的方式執行父類別的查詢。例如,名為userAddress的子類別可能包含一個getAddreddesByZip()方法。將該方法放入父DAO類別是毫無邏輯意義的,並且會破壞這個父類別希望實現的抽象性。

        在處理引用特定資料庫資訊的實體時,最好的做法是建立資料存取物件。

<?php 
//数据访问对象模式 
 
//将数据库访问层脱离出来 作为公用的访问接口,方便用户开放,是php中常用的一种设计模式 
 
class BaseDao { 
    private $db; 
     
    public function __construct($config) {  
        $this->db = mysql_connect($config[&#39;user&#39;], $config[&#39;pass&#39;], $config[&#39;host&#39;]); 
        mysql_select_db($config[&#39;database&#39;], $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 (&#39;initphp&#39;)"; 
        return $this->query($sql); 
    } 
} 
 
$UserDao = new UserDao; 
$UserDao->addUser();

以上是php物件導向進階設計模式:資料存取物件模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn