一、组合模式在项目中用来干什么?
我理解用来创建一类对象最好用组合模式,比如三消游戏中的各种障碍,比如rpg中的各种武器和武器能力,比如Rogue游戏中的各种能力。
组合模式思想中如何创建一个对象,比如创建消除游戏中一个新的障碍,我新建一条配置,设置障碍不能被移动、可以被消除、设置层数为3并且每次触发消除层数-1等等,那么就创建了一个新的障碍,创建交给配置,程序只关心所有能力的实现。
那么游戏中可能只有一个Block对象,而不是有很多子类。
一个对象的行为不由继承树决定,而是由 配置 + 行为组件组合 决定。
添加新方块不需要添加新类,只要配置新的组合。
二、接口更适合在什么场景下用?
现在创建对象不需要用接口-继承-抽象类-多态这一套了,因为一个个对象都是用配置属性组装起来的。
那么什么时候用接口更好?
那就是系统之间的调用用接口,比如方块或障碍可以被点击,那么点击系统必然要持有方块,但是点击系统只需要持有一个接口IClickable,Block实现IClickable即可,点击系统并不需要知道Block实什么,不需要知道如何实现点击功能,只需要调用IClickalbe中的方法即可。接口被用做方块系统和点击系统之间的桥梁。
三、总结
今后的项目,创建对象的环节用组合模式。系统间的调用用接口做桥接。