1
想象一下,你正在构建一个星际争霸,并且你想要模拟一个Hydralisk类。分解对象,可以做很多事情
刺蛇可以...
- 走动
- 攻击等单位
- 伯爵杀死
- 有一定的状态:保持,攻击,移动,巡更
- 伯罗
- 变身成潜伏者
- 有一些花哨的AI
所以Hydralisk有很多功能。将所有这些功能放到单个Hydralisk类中显然违反了我们都希望避免的单一责任原则。
请注意,我们这里的问题并不是因为给定的功能很复杂,而是因为它们中有很多。寻路和人工智能可以模块化,但Hydralisk仍然需要知道如何使用所有这些模块。更重要的是,这些功能紧密结合。刺蛇需要知道他是否被挖洞或不知道他是否可以攻击。
那么,我该如何分解一个巨大的Hydralisk物体?