PHP设计模式
2015-06-25 09:47
597 查看
PHP常见设计模式主要有:工厂模式、单例模式
1、工厂模式
<?php
abstract class DB{
abstract public function select();
abstract public function update();
abstract public function delete();
abstract public function add();
}
class MysqlFactory extends DB{
public function select() {
echo 'mysql select';
}
public function update(){
echo 'mysql update';
}
public function delete(){
echo 'mysql delete';
}
public function add(){
echo 'mysql add';
}
}
class SqlserverFactory extends DB{
public function select() {
echo 'SqlServer select';
}
public function update(){
echo 'SqlServer update';
}
public function delete(){
echo 'SqlServer delete';
}
public function add(){
echo 'SqlServer add';
}
}
class Factory{
public static function createFactory($dbname){
$dbname = ucwords($dbname) . 'Factory';
return new $dbname();
}
}
$db = Factory::createFactory('sqlserver');
$db->select();2、单例模式
在框架中基本上这些模式都会被用到
1、工厂模式
<?php
abstract class DB{
abstract public function select();
abstract public function update();
abstract public function delete();
abstract public function add();
}
class MysqlFactory extends DB{
public function select() {
echo 'mysql select';
}
public function update(){
echo 'mysql update';
}
public function delete(){
echo 'mysql delete';
}
public function add(){
echo 'mysql add';
}
}
class SqlserverFactory extends DB{
public function select() {
echo 'SqlServer select';
}
public function update(){
echo 'SqlServer update';
}
public function delete(){
echo 'SqlServer delete';
}
public function add(){
echo 'SqlServer add';
}
}
class Factory{
public static function createFactory($dbname){
$dbname = ucwords($dbname) . 'Factory';
return new $dbname();
}
}
$db = Factory::createFactory('sqlserver');
$db->select();2、单例模式
class DB{ public static $instance = null; public static function getInstance(){ if(self::$instance == null){ self::$instance = new self(); } return self::$instance; } }3、单例模式与工厂模式相结合
<?php abstract class DB{ abstract public function getInstance(); abstract public function select(); abstract public function update(); abstract public function delete(); abstract public function add(); } class MysqlFactory extends DB{ public static $instance = null; public function getInstance(){ if(self::$instance == null){ self::$instance = new self(); } return self::$instance; } public function select() { echo 'mysql select'; } public function update(){ echo 'mysql update'; } public function delete(){ echo 'mysql delete'; } public function add(){ echo 'mysql add'; } } class SqlserverFactory extends DB{ public static $instance = null; public function getInstance(){ if(self::$instance == null){ self::$instance = new self(); } return self::$instance; } public function select() { echo 'SqlServer select'; } public function update(){ echo 'SqlServer update'; } public function delete(){ echo 'SqlServer delete'; } public function add(){ echo 'SqlServer add'; } } class Factory{ public static function createFactory($dbname){ $dbname = ucwords($dbname) . 'Factory'; return $dbname::getInstance(); } } $db = Factory::createFactory('sqlserver'); $db->select();是不是感觉很有意思呀!
在框架中基本上这些模式都会被用到
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- PropertyChangeListener简单理解
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- 设计模式之创建型模式 - 特别的变量问题
- 设计模式之创建型模式
- PHP数据库长连接mysql_pconnect的细节
- 浅谈设计模式的学习
- Php Installing An Expansion
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得