装饰器模式学习

简介: 装饰器模式学习

实现装饰器模式的前提:子类中覆写父类同名方法时,父类方法仍是有效的。
调用过程的理解:调用过程中一直压栈,直到dress为空时开始出栈。核心思想是方法覆写和父类方法调用。

抽象类

public abstract class Dress{
   
    protected Dress dress;

    public void setDress(Dress dress) {
   
        this.dress = dress;
    }

    public void dress() {
   
        if(dress!=null) {
   
            dress.dress();
        }
    }
}

被装饰者

public class Girl extends Dress{
   
    @Override
    public void dress() {
   
        super.dress();
        System.out.println("衣服穿完了");
    }
}

装饰1

public class OnePiece extends Dress {
   
    @Override
    public void dress() {
   
        super.dress();
        System.out.println("穿连衣裙");
    }
}

装饰2

public class Jacket  extends Dress{
   
    public void dress() {
   
        super.dress();
        System.out.println("穿夹克");
    }
}

输出:

穿连衣裙
穿夹克
衣服穿完了

目录
相关文章
|
6月前
|
设计模式 存储 缓存
聊聊Java设计模式-装饰器模式
装饰器模式允许向一个现有的对象添加新的功能,同时不改变其结果。比如Java 中的IO框架中,`FileInputStream`(处理文件)、`ByteArrayInputStream`(处理字节数组)、`BufferedInputStream`(带缓存的处理类)等就是对`InputStream`进行的功能扩展,这就是装饰器模式的典型应用。
60 1
聊聊Java设计模式-装饰器模式
|
2月前
|
设计模式 Java
Java设计模式-装饰器模式(10)
Java设计模式-装饰器模式(10)
|
6月前
|
设计模式
装饰器模式
装饰器模式
33 0
|
6月前
|
设计模式 C++
【C++】—— 装饰器模式
【C++】—— 装饰器模式
|
6月前
|
设计模式
结构型设计模式:装饰器模式
结构型设计模式:装饰器模式
39 0
|
设计模式 Java
装饰器模式【Java设计模式】
装饰器模式【Java设计模式】
63 0
|
设计模式 缓存 Java
【Java设计模式 设计模式与范式】结构型模式 三:装饰器模式(上)
【Java设计模式 设计模式与范式】结构型模式 三:装饰器模式
93 0
【Java设计模式 设计模式与范式】结构型模式 三:装饰器模式(上)
|
设计模式
2023-6-26-第八式装饰器模式
2023-6-26-第八式装饰器模式
74 0
|
设计模式 缓存 Java
【Java设计模式 设计模式与范式】结构型模式 三:装饰器模式(下)
【Java设计模式 设计模式与范式】结构型模式 三:装饰器模式
68 0
|
前端开发 BI
关于装饰器模式我所知道的
关于装饰器模式我所知道的
77 0