轻松掌握java中的装饰者模式
此篇需要了解方法重写,this与super关键字,不懂的可以看看
https://blog.****.net/javacoder_juejue/article/details/81114505
https://blog.****.net/javacoder_juejue/article/details/81103204
初步了解概念:
举个例子进一步了解:
然后看代码深刻理解:(不理解抽象类与接口如何运用的看看这篇
https://blog.****.net/javacoder_juejue/article/details/81169609)
下面的代码自己手敲一遍才容易理解,实在不懂我最后会给出通俗易懂的总结
1.先定义个手机接口,里面有打电话的方法
2.定义IPhone手机类,实现手机接口
3.需求1:在接电话前,听到铃声
实现如下:
定义一个给手机装饰的抽象类,重写打电话方法
定铃声类继承上面的抽象类
![]()
测试类如下:
控制台输出结果入下:自己分析下,还不懂就继续看
需求2:打完电话后,听到音乐(如果上面懂了的话,这个基本是一样的)
定义音乐装饰类继承上面抽象类
测试类如下
控制台输出结果入下:自己分析下,前面两个需求懂了一个就都懂了
需求3:我要在通话前有铃声,打电话后放音乐(就是把以上两个需求合并)
那么我们要怎么做呢?
这里只需要加两行代码(下面红线是编译器还没反应过来,其实没有错)
控制台打印结果如下:
到此演示完毕,下面是
分析:看这里
,
我们每多一个new ,就多一重修饰。而最后的参数-这里是iPhone,就是我们要修饰的对象。
至于为什么为什么定义抽象类跟接口类似的问题,可以看俺前面的博客,不掌握那些知识的前提下先别看这篇吧...
还有,记得多敲,不敲看懂了也很快就忘了!