php design pattern Factory of factory pattern

  • 2020-05-09 18:15:38
  • OfStack

 
<?php 
/** 
*  Factory method model  
* 
*  define 1 Three interfaces for creating objects , Let the subclass decide which 1 Class instantiation , use 1 Class instantiation is deferred to its subclasses  
*/ 

/* 
class DBFactory 
{ 
public static function create($type) 
{ 
swtich($type) 
{ 
case "Mysql": 
return new MysqlDB(); break; 
case "Postgre": 
return new PostgreDB(); break; 
case "Mssql": 
return new MssqlDB(); break; 
} 
} 
} 
*/ 
class DBFactory 
{ 
public static function create($type) 
{ 
$class = $type."DB"; 
return new $class; 
} 
} 

interface DB 
{ 
public function connect(); 
public function exec(); 
} 

class MysqlDB implements DB 
{ 
public function __construct() { 
echo "mysql db<br/>"; 
} 

public function connect() { 
} 

public function exec() { 
} 
} 

class PostgreDB implements DB 
{ 
public function __construct() { 
echo "Postgre db<br/>"; 
} 

public function connect() { 
} 

public function exec() { 
} 
} 

class MssqlDB implements DB 
{ 
public function __construct() { 
echo "mssql db<br/>"; 
} 

public function connect() { 
} 
public function exec() { 
} 
} 

$oMysql = DBFactory::create("Mysql"); 
$oPostgre = DBFactory::create("Postgre"); 
$oMssql = DBFactory::create("Mssql"); 

Related articles: