轻松掌握java中的装饰者模式

此篇需要了解方法重写,this与super关键字,不懂的可以看看

https://blog.csdn.net/javacoder_juejue/article/details/81114505

https://blog.csdn.net/javacoder_juejue/article/details/81103204

初步了解概念:

 

举个例子进一步了解:

然后看代码深刻理解:(不理解抽象类与接口如何运用的看看这篇

https://blog.csdn.net/javacoder_juejue/article/details/81169609

下面的代码自己手敲一遍才容易理解,实在不懂我最后会给出通俗易懂的总结

1.先定义个手机接口,里面有打电话的方法

2.定义IPhone手机类,实现手机接口

3.需求1:在接电话前,听到铃声

实现如下:

定义一个给手机装饰的抽象类,重写打电话方法

定铃声类继承上面的抽象类

测试类如下:

控制台输出结果入下:自己分析下,还不懂就继续看

需求2:打完电话后,听到音乐如果上面懂了的话,这个基本是一样的

定义音乐装饰类继承上面抽象类

测试类如下

控制台输出结果入下:自己分析下,前面两个需求懂了一个就都懂了

需求3:我要在通话前有铃声,打电话后放音乐(就是把以上两个需求合并)

那么我们要怎么做呢?

这里只需要加两行代码(下面红线是编译器还没反应过来,其实没有错)

控制台打印结果如下:

到此演示完毕,下面是

分析:看这里

我们每多一个new ,就多一重修饰。而最后的参数-这里是iPhone,就是我们要修饰的对象。

至于为什么为什么定义抽象类跟接口类似的问题,可以看俺前面的博客,不掌握那些知识的前提下先别看这篇吧...

还有,记得多敲,不敲看懂了也很快就忘了!

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我才是真的封不觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值