java装饰者模式

java中增强方法的功能有三种方式

  • 1.通过继承,重写父类的方法,在调用super的基础上,再添加代码
  • 2.动态代理
  • 3.装饰着模式,java中比较熟悉的装饰者模式就是java中的IO,整个与IO相关的部分都是使用的装饰者模式

下面就来聊一聊实现装饰者模式的过程:假如现在有一只猫,能跑,还能抓老鼠,那么通过装饰者模式的方式来写代码,先实现猫能跑,然后装饰这只能跑的猫,实现抓老鼠.

1.首先定义一个接口,有一个run方法
public interface ICat{
    void run();
}
2.实现接口,从而得到一个能跑的猫类
public class Cat implements ICat{
    
    @Override
    public void run(){
        System.out.println("猫猫能跑");
    }
    
}
4.创建包装类,也实现ICat
public void CatPack implements ICat{
    
    private ICat icat;
    
    public CatPack(ICat icat){
        this.icat=icat;
    }
    
    @Override
    public void run(){
        icat.run();
        System.out.println("猫猫还可以抓老鼠");
    }
    
}
5.测试
public static void main(String[] args){
    ICat icat=new CatPack(new Cat());
    icat.run();
}
6.执行结果
猫猫能跑
猫猫还可以抓老鼠
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 装饰者模式 Decorator:不改变原类,不使用继承,创建一个包装对象,动态地扩展原对象的功能。 优点: 扩展性...
    专职跑龙套阅读 280评论 0 2
  • 1.首先新建一个Person接口(也就是一套规范和标准),该接口定义了一个run和一个eat方法,实现这个接口的所...
    ZOKE阅读 214评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,751评论 25 709
  • 过了一会儿,表哥准备关机走人。 我忙拉住他,说,人可以走,别关机呀,让我上一会儿。 表哥愣了一下,笑着说:“你又不...
    我是李寨主阅读 1,541评论 0 8
  • 灰姑娘的继母故然对灰姑娘不好,也只表现为让她吃差穿差做家务,不让她参加王子的舞会。而白雪公主的后妈则先要人悄悄杀害...
    娱人励己阅读 526评论 0 0