在php设计模式学习记录(上)中(http://blog.csdn.net/u014454539/article/details/44888307)我们介绍了工厂模式、单例模式、注册树模式、策略模式,使用这些php设计模
式,可以通过减少资源的使用,来降低对服务器的负荷,而同时这些设计模式也我们对代码的维护带来了更多的便捷。
今天我们继续介绍php设计模式。
5.原型模式
类似于工程模式,也是在创建对象的时候,以降低资源的分配而出的一种设计模式,在这种设计模式中,我们只需new一个初始化的对象,在接下来的工作中,如果还需要这个对象,我们只需要使用php clone的方法获得此对象即可。
<?php
class ProtoType{
}
$protoType = new ProtoType;
$test1 = clone $protoType;
$test2 = clone $protoType;
?>
6.装饰器模式
可动态地添加修改类的功能,而这种动态添加修改的方式,相较于类的继承方法更加的灵活,在运行原代码时,只需增加一个装饰器对象,调用相应方法即可。
<?php
namespace IMooc;
class Test
{
public $data;
protected $decorators = array();
//DrawDecorator类即为我们已编写好的装饰器类
function addDecorator(DrawDecorator $decorator)
{
$this->decorators[] = $decorator;
}
function beforeHandle()
{
foreach($this->decorators as $decorator)
{
$decorator->beforeHandle();
}
}
function afterHandle()
{
$decorators = array_reverse($this->decorators);
foreach($decorators as $decorator)
{
$decorator->afterHandle();
}
}
function myHandle()
{
}
}