>백엔드 개발 >PHP 튜토리얼 >PHP의 추상 팩토리 패턴

PHP의 추상 팩토리 패턴

WBOY
WBOY원래의
2016-08-08 09:31:30814검색

추상 팩토리 패턴
과 팩토리 메소드 패턴의 차이점은 추상 팩토리가 먼저 팩토리를 생성한 다음 팩토리가 제품(인스턴스)을 생성한다는 것입니다.

생성을 위한 인터페이스를 정의합니다. 객체를 생성하고 하위 클래스가 인스턴스화할 클래스를 결정하도록 합니다. 그는 단순한 공장 모델에서 폐쇄적 원칙과 개방적 원칙의 문제를 해결할 수 있습니다;

// 产品(数据库)标准


 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으로 문의하세요.
이전 기사:PHP 반사클래스다음 기사:PHP 반사클래스