当前位置: 编程技术>php
本页文章导读:
▪php设计模式 Adapter(适配器模式)
代码如下: <?php /** * 适配器模式 * * 将一个类的接口转换成客户希望的另外一个接口,使用原本不兼容的而不能在一起工作的那些类可以在一起工作 */ // 这个是原有的类型 class OldCache { public.........
▪php设计模式 Builder(建造者模式)
代码如下: <?php /** * 建造者模式 * * 将一个复杂对象的构建与它的表示分离,使用同样的构建过程可以创建不同的表示 */ class Product { public $_type = null; public $_size = null; public $_color = null; public .........
▪php设计模式 DAO(数据访问对象模式)
代码如下: <?php /** * 数据访问对象(Data Access Object) 示例 * * @create_date: 2010-01-04 */ class BaseDAO { var $_db = null; var $_table = null; function BaseDAO($config) { $this->_db = new MysqlDB(); // 这里的不能进行操作.........
[1]php设计模式 Adapter(适配器模式)
来源: 互联网 发布时间: 2013-11-30
代码如下:
<?php
/**
* 适配器模式
*
* 将一个类的接口转换成客户希望的另外一个接口,使用原本不兼容的而不能在一起工作的那些类可以在一起工作
*/
// 这个是原有的类型
class OldCache
{
public function __construct()
{
echo "OldCache construct<br/>";
}
public function store($key,$value)
{
echo "OldCache store<br/>";
}
public function remove($key)
{
echo "OldCache remove<br/>";
}
public function fetch($key)
{
echo "OldCache fetch<br/>";
}
}
interface Cacheable
{
public function set($key,$value);
public function get($key);
public function del($key);
}
class OldCacheAdapter implements Cacheable
{
private $_cache = null;
public function __construct()
{
$this->_cache = new OldCache();
}
public function set($key,$value)
{
return $this->_cache->store($key,$value);
}
public function get($key)
{
return $this->_cache->fetch($key);
}
public function del($key)
{
return $this->_cache->remove($key);
}
}
$objCache = new OldCacheAdapter();
$objCache->set("test",1);
$objCache->get("test");
$objCache->del("test",1);
[2]php设计模式 Builder(建造者模式)
来源: 互联网 发布时间: 2013-11-30
代码如下:
<?php
/**
* 建造者模式
*
* 将一个复杂对象的构建与它的表示分离,使用同样的构建过程可以创建不同的表示
*/
class Product
{
public $_type = null;
public $_size = null;
public $_color = null;
public function setType($type)
{
echo "set product type<br/>";
$this->_type = $type;
}
public function setSize($size)
{
echo "set product size<br/>";
$this->_size = $size;
}
public function setColor($color)
{
echo "set product color<br/>";
$this->_color = $color;
}
}
$config = array(
"type"=>"shirt",
"size"=>"xl",
"color"=>"red",
);
// 没有使用bulider以前的处理
$oProduct = new Product();
$oProduct->setType($config['type']);
$oProduct->setSize($config['size']);
$oProduct->setColor($config['color']);
// 创建一个builder类
class ProductBuilder
{
var $_config = null;
var $_object = null;
public function ProductBuilder($config)
{
$this->_object = new Product();
$this->_config = $config;
}
public function build()
{
echo "--- in builder---<br/>";
$this->_object->setType($this->_config['type']);
$this->_object->setSize($this->_config['size']);
$this->_object->setColor($this->_config['color']);
}
public function getProduct()
{
return $this->_object;
}
}
$objBuilder = new ProductBuilder($config);
$objBuilder->build();
$objProduct = $objBuilder->getProduct();
[3]php设计模式 DAO(数据访问对象模式)
来源: 互联网 发布时间: 2013-11-30
代码如下:
<?php
/**
* 数据访问对象(Data Access Object) 示例
*
* @create_date: 2010-01-04
*/
class BaseDAO
{
var $_db = null;
var $_table = null;
function BaseDAO($config)
{
$this->_db = new MysqlDB(); // 这里的不能进行操作
}
/**
* 获取处理
*
* @param array $filter // 过滤条件
* @param string $field // 获取字段
* @param int $page // 当前页
* @param int $limit // 页数
*/
function fetch($filter = array(),$field = "*",$page = 1,$limit = null)
{
$this->_db->select($filed)->from($this->_table)->where($filter)->limit($page,$limit);
return $this->_db->execute();
}
function update(){}
function delete(){}
function insert(){}
}
class MemberDAO extends BaseDAO
{
var $_table = "member";
}
$oMember = new MemberDAO();
$oMember->fetch();
/**
* 常用到的地方:
* MVC中model层基类
*/
?>
最新技术文章: