ホームページ >バックエンド開発 >PHPチュートリアル >PHPの抽象ファクトリーパターン

PHPの抽象ファクトリーパターン

WBOY
WBOYオリジナル
2016-08-08 09:31:30812ブラウズ

抽象ファクトリ パターンとファクトリ メソッド パターンの違いは、抽象ファクトリが最初にファクトリを作成し、次にファクトリがプロダクト (インスタンス) を作成し、オブジェクトを作成するためのインターフェイスを定義し、どのクラスを作成するかをサブクラスに決定させることです。インスタンス化します。 彼は単純なファクトリーパターンでクローズドオープン原理問題を解くことができます;

// 产品(数据库)标准


 interface DbInterface{
	public function connect(Array $params=array());
    public function query($sql);
    public function insert($table, $record);
    public function update($table, $record, $where);
    public function delete($table, $where);
}



// 具体产品(Mysql)

class MysqlDb implements DbInterface(){

    public function connect(Array $params=array());
    public function query($sql){}
    public function insert($table, $record){}
    public function update($table, $record, $where){}
    public function delete($table, $where){}

}


class OracalDb implements DbInterface(){

    public function connect(Array $params=array()){}
    public function query($sql){}
    public function insert($table, $record){}
    public function update($table, $record, $where){}
    public function delete($table, $where){}

}



// 构造工厂 

interface CreateFactory(){

    function createDB(); //分为 内敛的和外向的

}


class FactoryMysql implements CreateFactory{
    function createDB() {
        return  new  MysqlDb();
    }
}


class FactoryOracle implements CreateFactory{
    function createDB() {
        return  new  OracalDb();
    }
}




(1) 如果想使用mysql

$db = new FactoryMysql()->createDB();   //

上記では、PHP の抽象ファクトリー パターンをその側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。