想象一下,你正在建造一个星际争霸,而你想建立一个刺蛇类。
刺蛇可以......
所以Hydralisk有很多功能。将所有这些功能放入单个Hydralisk类中显然违反了单一责任原则,我们都希望避免这一原则。
请注意,我们的问题不是因为给定的功能很复杂,而是因为它们很多。寻路和AI可以模块化,但是Hydralisk仍然必须知道如何使用所有这些模块。更重要的是,这些功能紧密耦合。刺蛇需要知道他是否被挖洞以检查他是否能够进行攻击。
那么,我怎样才能分解一个巨大的Hydralisk对象呢?
答案 0 :(得分:1)
您正在寻找基于组件的游戏对象,其中对象被创建为独立组件的聚合(集合)。
http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/