php设计模式 Factory(工厂模式)

yipeiwu_com6年前PHP代码库
复制代码 代码如下:

<?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");

相关文章

PHP中删除变量时unset()和null的区别分析

第一种方法:$varname=null 第二种方法:unset($varname) 这两种方法都可以删除变量,但结果有些许的差别。 代码: 复制代码 代码如下: <?php $a...

PHP文件与目录操作示例

本文实例讲述了PHP文件与目录操作。分享给大家供大家参考,具体如下: 文件目录相关函数 <?php // 输出目录中的文件 function outputcurfile...

PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)

本文实例讲述了PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法。分享给大家供大家参考,具体如下: PHP中strnatcmp()函数使用"自然"算法来比较两个字符串(...

php的urlencode()URL编码函数浅析

URLEncode的方式一般有两种,一种是传统的基于GB2312的Encode(Baidu、Yisou等使用),另一种是基于UTF-8的Encode(Google、Yahoo等使用)。...

处理单名多值表单的详解

就使用一个简单的可多选的select:复制代码 代码如下:<?phpecho<<<EOT<form action="" method=get>&nbs...