【设计模式】-装饰者模式(Wrapper)

装饰者模式是一种设计模式,它允许在运行时给对象添加新的职责,以实现比继承更灵活的功能扩展。通过组合而非继承,装饰者模式遵循开闭原则,保持类对拓展开放而对修改关闭。然而,这种模式可能导致代码可读性下降,并在某些情况下定制选项有限。
摘要由CSDN通过智能技术生成

实在觉得搜狗输入法流氓,于是就在刚刚卸载掉了。因为搜狗输入法“惯”出的懒散病也该得到治疗了。言归正传--“装饰者模式”


装饰者模式实际上就是将“父对象”的职责动态地加在“子对象”之上,“子对象”可以根据需要,在本有职责的基础上添加其他的业务。换句话说,若要拓展功能,装饰者设计模式比继承提供了更加富有弹性的解决方案。

它的设计原则一是尽可能多地使用组合,而尽可能少的使用继承,因为继承是在编译时决定的,是一种”静态“的功能拓展,而应用组合对功能进行拓展,则更富有灵活性。二是似的类对拓展开放而对修改关闭。

装饰者模式要求,装饰者与被装饰者需要有同一超类,其目的是为了让装饰者与被装饰者对象的类型能够匹配,而绝非是继承其行为。装饰者模式将保持接口,并增加对象的职责。


例子:

首先是定义一个接口,即装饰者与被装饰者都都需要继承的一个”超类“,是为了让装饰者与被装饰者对象的类型能够匹配。

    interface Component
    {
        void Operation();
    }

然后是被装饰者,充当”父对象“这个角色,定义了最基本的功能职责。

    class Father : Component
    {
        public void Operation()
        {
            Console.WriteLine("Base operation.");
        }
    }

接下来
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值