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.执行结果
猫猫能跑
猫猫还可以抓老鼠

你可能感兴趣的:(java装饰者模式)