วันอาทิตย์ที่ 21 พฤศจิกายน พ.ศ. 2553

Abstract factory pattern

abstract class เพื่อให้เรียกใช้งาน class ต่างๆ ที่มีรายชื่อคำสั่ง function เหมือนกันได้
โดยสามารถสลับไปใช้ class ที่มีรายชื่อคำสั่งเหมือนกันได้ผ่าน configuration

<?php

abstract class DbFactory
{
public static function getFactory($type){
$type .= 'Db';
return new $type;
}
public abstract function connect();
//public abstract function query();
//public abstract function fetch();
//public abstract function close();
}

class MysqlDb extends DbFactory
{
public function connect(){
echo '[Mysql Connect]';
}
}

class MssqlDb extends DbFactory
{
public function connect(){
echo '[Mssql Connect]';
}
}

$config = 'Mssql';
$db = DbFactory::getFactory($config);
$db->connect();
//...
?>

ไม่มีความคิดเห็น:

แสดงความคิดเห็น