资讯专栏INFORMATION COLUMN

装饰器模式

fai1017 / 1044人阅读

摘要:装饰器模式外在形式是类套类简单类递归调用装饰器模式动态的给一个对象添加额外的职责就增加功能来说,装饰器模式比生成子类更为灵活组件接口具体组件实现装饰器类装饰器装饰器不断装饰核心在于每个类的构造方法的组件挂载即装饰统一输出

装饰器模式

外在形式是类套类

简单类递归调用

component = $component;
    }
    public function operation()
    {
        $this->component->operation();
    }
}

// 装饰器A
class DecoratorA extends Decorator
{
    public function __construct(Component $comp)
    {
        parent::__construct($comp);
    }
    public function operation()
    {
        parent::operation();
        echo "it is decorator_A
";
    }
}

// 装饰器B
class DecoratorB extends Decorator
{
    public function __construct(Component $comp)
    {
        parent::__construct($comp);
    }
    public function operation()
    {
        parent::operation();
        echo "it is decorator_B
";
    }
}


try {
    // 不断装饰 
    // 核心在于每个类的构造方法的组件挂载(即装饰)
    $component = new ConcreteComponent();
    $a = new DecoratorA($component);
    $b = new DecoratorB($a);

    // 统一输出
    $b->operation();
} catch (Exception $e) {
    echo $e->getMessage();
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23247.html

相关文章

  • 装饰模式(Decorator Pattern)

    摘要:通常有两种方式可以实现给一个类或对象增加行为继承机制,使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。 装饰模式 (Decorator Pattern) 装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能。通常有两种方式可以实现给一个类或对象增加行为: 继承机制,使用继承机制是给现有类添加功能的一种...

    gityuan 评论0 收藏0
  • 聊聊Typescript中的设计模式——装饰篇(decorators)

    摘要:本文从装饰模式出发,聊聊中的装饰器和注解。该函数的函数名。不提供元数据的支持。中的元数据操作可以通过包来实现对于元数据的操作。   随着Typescript的普及,在KOA2和nestjs等nodejs框架中经常看到类似于java spring中注解的写法。本文从装饰模式出发,聊聊Typescipt中的装饰器和注解。 什么是装饰者模式 Typescript中的装饰器 Typescr...

    yiliang 评论0 收藏0
  • Python装饰

    摘要:一引用书流畅的书二基本概念问题装饰器是什么解答严格来说,装饰器只是语法糖,装饰器是可调用的对象,可以像常规的可调用对象那样调用,特殊的地方是装饰器的参数是一个函数问题装饰器有什么特性解答装饰器有个特性,一是可以把被装饰的函数替换成其他函数, 一, 引用 [书] 流畅的Python [书] Effective Python 二, 基本概念 showImg(https://segme...

    aisuhua 评论0 收藏0
  • Python装饰vs装饰模式

    摘要:希望引以为戒郑传装饰模式如果你了解,你肯定听过装饰器模式。在面向对象中,装饰模式指动态地给一个对象添加一些额外的职责。就增加一些功能来说,装饰模式比生成子类更为灵活。 漫谈 如果作为一个Python入门,不了解Python装饰器也没什么,但是如果作为一个中级Python开发人员,如果再不对python装饰器熟稔于心的话,那么可能并没有量变积累到质变。 我以前也看过很多讲python 装...

    stackvoid 评论0 收藏0
  • 设计模式(5)装饰模式(讲解+应用)

    摘要:装饰器模式在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。通过使用装饰器模式,我们可以实现关闭原有代码,开放现有代码的方式来实现更多的功能。 目录 装饰器模式 为什么使用装饰器模式 应用实例 装饰器模式 看到装饰器是在看《Thinking in Java》一书的时候,看到文件读写那边的时候,有提到装饰器模式,同时在文件读写的那一部分,对于各种读入,写出的方式,代码组...

    RebeccaZhong 评论0 收藏0
  • 从ES6重新认识JavaScript设计模式: 装饰模式

    摘要:什么是装饰器模式向一个现有的对象添加新的功能,同时又不改变其结构的设计模式被称为装饰器模式,它是作为现有的类的一个包装。中的装饰器模式中有一个的提案,使用一个以开头的函数对中的及其属性方法进行修饰。 1 什么是装饰器模式 showImg(https://segmentfault.com/img/remote/1460000015970102?w=1127&h=563); 向一个现有的对...

    wendux 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<