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

PHP의 추상 팩토리 패턴

WBOY
풀어 주다: 2016-08-08 09:31:30
원래의
809명이 탐색했습니다.

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

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

// 产品(数据库)标准


 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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿