PHP设计模式的装饰器模式代码的一个示例

PHP设计模式的装饰器模式代码的一个示例
定义 uff1a

装饰模式是动态扩展类的功能,不需要修改原有的类代码和继承,传统的编程模式是继承父类以实现方法重载的子类。装饰模式只需要添加一个新的装饰对象,它更灵活,避免类的数量和级别。

的作用:

组件(装饰对象基类)

混凝土构件(特别是装饰物)

装饰器(装饰器基类)

contretedecorator(具体装饰类)

示例代码:

是/装饰类
接口组件
{
公共职能运作();
}

装饰类
抽象类装饰器实现组件
{
受保护的组件;

公共功能__construct(组件$成分)
{
$这个组件;
}

公共职能运作()
{
$ >组件- >操作();
}
}

特定的装饰类
混凝土构件实现了组件类
{
公共职能运作()
{
echo'do php_eol操作;
}
}

特定装饰
类concretedecoratora延伸装饰{
公共功能__construct(组件$组件){
家长::__construct(元部件);

}

公共函数操作(){
父::操作();
(美元-> addedoperationa); / /新业务
}

公共功能addedoperationa(){
echo'add操作。php_eol;
}
}

特定装饰
类concretedecoratorb延伸装饰{
公共功能__construct(组件$组件){
家长::__construct(元部件);

}

公共函数操作(){
父::操作();
美元-> addedoperationb();
}

公共功能addedoperationb(){
echo'add操作php_eol B;
}
}
客户端类{

公共静态函数main(){
*
做手术
添加操作
* /
decoratora美元=新concretedecoratora(新混凝土构件());
decoratora美元->运行();
*
做手术
添加操作
添加操作B
* /
decoratorb =新concretedecoratorb美元(美元decoratora);
decoratorb美元->运行();
}

}

客户::主();

tag:设计模式装饰器模式示例代码电脑软件

相关内容