码迷,mamicode.com
首页 > Web开发 > 详细

php设计模式之工厂模式

时间:2017-03-14 19:01:41      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:self   一个数据库   l数据库   sel   ast   etl   stat   bsp   cti   

<?php
/***
 * @desc 工厂模式
 * ***/

interface DB{
    /*
     * @desc 接口类不体现具体实现,只是为了规范一套规则
     * **/
    
    public function conn();    
    
    public function add();
    
    public function delete();
    
    public function update();
    
    public function select();
    
    public function getLastSql();
    
}

/**
 * @desc 创建mysqlDb类
 * 接口是用来被实现的,并且每一个方法都必须要被实现
 * **/
class mysqlDb implements DB{
    
    public function conn(){
        echo "恭喜您,mysql数据库连接成功";
    }
    
    public function add(){
        
    }
    
    public function delete(){
        
    }
    
    public function update(){
        
    }
    
    public function select(){
        
    }
    
    public function getLastSql(){
        
    }
}


/**
 * @desc 创建sqlServerDb 类
 * **/
class sqlServerDb implements DB{
    
    public function conn(){
        echo "恭喜您,sqlServer数据库连接成功";
    }
    
    public function add(){
    
    }
    
    public function delete(){
    
    }
    
    public function update(){
    
    }
    
    public function select(){
    
    }
    
    public function getLastSql(){
    
    }
}

/**
 * @desc 创建一个数据库工程类,用来生产对象
 * **/
class DbFactory{
    static $db = null;
    public static function getDb($type){
        switch($type){
            case ‘mysql‘:
                self::$db = new mysqlDb();
                break;
            case ‘sqlServer‘:
                self::$db = new sqlServerDb();
                break;    
        }
        return self::$db;
    }
        
}

//测试使用mysql来连接数据库测试工程模式是否成功
$factory = new DbFactory();
$db = $factory->getDb(‘mysql‘);
$db->conn();
//测试结果输出:恭喜您,mysql数据库连接成功

 

php设计模式之工厂模式

标签:self   一个数据库   l数据库   sel   ast   etl   stat   bsp   cti   

原文地址:http://www.cnblogs.com/lisqiong/p/6549745.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!