实践中的构图

时间:2018-10-25 21:06:02

标签: composition

在大学里,我们被告知,组合对于保持代码的清洁和高效非常重要。例如,一个游戏性类对象可能存在于一个运动场类对象中。如果没有运动场,就不会有游戏场。但是,我们从来没有学会过如何实现这种事情。当我问时,我得到的答案类似于“在构造函数中添加检查”。或类似的东西,但我不知道如何实现(我不知道要寻找什么或官方术语是什么)。我的尝试之一是继承。老师们不喜欢那样,让我们​​保持那个……

那么,组合实际上如何运作?我如何做到这一点,使playfield类成为 only 类,它可以实例化游戏对象而无需继承?

1 个答案:

答案 0 :(得分:0)

在实践中,引用另一个的类并不对其引用的类施加约束。对于一个班级来说,关心它引用了什么是不可取的。例如:编写单元测试时,您不想强制执行此约束。我永远都做不到,所以playfield类是唯一可以实例化游戏对象的类。

有关在野外如何实现合成的具体示例,请查看Unity3d游戏引擎:https://www.youtube.com/watch?v=8TIkManpEu4