使用Decorator模式添加功能

使用Decorator模式添加功能
 

可能你已经在用Decorator模式了,但是跟所有其他模式一样,知道你为什么使用它,学习使用它跟别的开发者沟通是很重要的。

 

Decorator模式,即Wrapper模式,其强制控制作用是在不改动一个类的代码或者不破坏一个类的接口的情况下为该类添加功能。当你想一个类具有更多功能的时候,使用Decorator模式意味着增加功能后的版本不一定要通过扩展类来重用现有功能。

 

假定有一个叫做Action的接口有两个方法,act1()、act2()。这个接口有一个具体版本ConcreteAction,Decorator将会是一个实现Action的类,其构造器有一个Action(通常是ConcreteAction)。所以代码如下:

public class ActionDecorator implements Action {

    private Action action;
    
    public ActionDecorator(Action action) {
        this.action = action;
    }
   

public void act1() {
        action.act1();
    }

    public void act2() {
        // do nothing
    }

}

使用Decorator比使用继承产生更少的类,所以其代码比较简单;但是它通常产生更多的对象,将导致调试难度增加,尤其是因为它增加了灵活度,可能会引入新的错误
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值