php设计模式 Factory(工厂模式)
2015-01-24信息快讯网
定义一个用于创建对象的接口,让子类决定将哪一个类实例化,使用一个类的实例化延迟到其子类
<?php
/**
* 工厂方法模式
*
* 定义一个用于创建对象的接口,让子类决定将哪一个类实例化,使用一个类的实例化延迟到其子类
*/
/*
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");
apache php模块整合操作指南
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
PHP中数字检测is_numeric与ctype_digit的区别介绍
PHP 之Section与Cookie使用总结
PHP中使用foreach和引用导致程序BUG的问题介绍
php循环语句 for()与foreach()用法区别介绍
Windows下部署Apache+PHP+MySQL运行环境实战
PHP中extract()函数的定义和用法
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
php学习之function的用法
php设计模式 Facade(外观模式)
php设计模式 Interpreter(解释器模式)
php的memcached客户端memcached
PHP模块 Memcached功能多于Memcache
php模块memcache和memcached区别分析
批量获取memcache值并按key的顺序返回的实现代码
PHP中遍历stdclass object的实现代码
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
rephactor 优秀的PHP的重构工具
php自动获取字符串编码函数mb_detect_encoding
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE eval()'d code error