2017-09-11 27 views
1

想象一下,你正在构建一个星际争霸,并且你想要模拟一个Hydralisk类。分解对象,可以做很多事情

刺蛇可以...

  1. 走动
  2. 攻击等单位
  3. 伯爵杀死
  4. 有一定的状态:保持,攻击,移动,巡更
  5. 伯罗
  6. 变身成潜伏者
  7. 有一些花哨的AI

所以Hydralisk有很多功能。将所有这些功能放到单个Hydralisk类中显然违反了我们都希望避免的单一责任原则。

请注意,我们这里的问题并不是因为给定的功能很复杂,而是因为它们中有很多。寻路和人工智能可以模块化,但Hydralisk仍然需要知道如何使用所有这些模块。更重要的是,这些功能紧密结合。刺蛇需要知道他是否被挖洞或不知道他是否可以攻击。

那么,我该如何分解一个巨大的Hydralisk物体?

回答

相关问题