目录
一、复习总结装饰者模式
先来复习一下装饰者模式,
https://blog.csdn.net/phs999/article/details/107726853
装饰者模式的核心就是将待修饰类对象传参到装饰类,然后得到一个新的、更加强大、可以支持更多功能、修饰后的类对象。
而待修饰类对象与修饰后的对象 类型相同。
1、实现原理:
(1)装饰类与被装饰类都实现同一个接口或继承同一个抽象类。
(2)装饰类的构造方法必须是有参构造方法,而且参数是要被修饰的对象。
(3)修饰类中实现了对被修饰对象的方法重写和扩展。
2、与继承的区别:
(1)修饰类的构造方法是带参的,而且可以实现多个修饰类同时使用。
二、坦克大战中应用装饰者模式
在坦克大战中应用该设计模式,目的是练习,但应用之后会出现各种问题,下面主要讨论一下这些问题,以便实际应用中提前避免。
1、结构图
就像上面总结的装饰者模式的实现原理,坦克大战中一样。此处将游戏对象GameObject作为被修饰的抽象类,所有的游戏对象实体比如Bullet、Wall、Tank等都是他的子类。相应的,装饰类也要继承GameObject,并将GameObject作为构造方法参数。