数码资讯
PHP设计模式的装饰器模式代码的一个示例
定义 uff1a 装饰模式是动态扩展类的功能,不需要修改原有的类代码和继承,传统的编程模式是继承父类以实现方法重载的子类。装饰模式只需要添加一个新的装饰对象,它更灵活,避免类的数量和级别。 的作用: 组件(装饰对象基类) 混凝土构件(特别是装饰物) 装饰器(装饰器基类) contretedecora
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
定义 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美元->运行();
}
}
客户::主();
装饰模式是动态扩展类的功能,不需要修改原有的类代码和继承,传统的编程模式是继承父类以实现方法重载的子类。装饰模式只需要添加一个新的装饰对象,它更灵活,避免类的数量和级别。
的作用:
组件(装饰对象基类)
混凝土构件(特别是装饰物)
装饰器(装饰器基类)
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美元->运行();
}
}
客户::主();
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。