这是问题所在,假设我们正在制作视频游戏,并希望使用依赖注入.这是我们拥有的:
Game Class // This is just the code to keep track of the overall game logic Character Class // This would be the guys in the game,good and bad guys both Weapon Class // The weapons for the characters
所以通常当我做依赖注入时,我会在地图上注入当前位置,并将游戏状态注入角色,这样我的角色就可以知道在哪里创建自己的信息等等.然后我让角色创建武器并注入关于武器强度的数值,以及游戏类等的其他一般游戏状态等.
这几乎对我来说似乎是一种反模式.我之所以这么说是因为现在你(至少对我来说似乎这样)的代码非常脆弱且难以改变.如果我们想要更改传递的游戏状态信息,我们将被迫更改所有三个类.我们对Game类进行了原始更改,然后修改了Character,最后修改了Weapon类.这是很多工作,特别是如果你要深入5级而不仅仅是3级.虽然是的,它可以让单位测试比没有DI更容易.
这听起来像是不好的做法.这是通常的事情吗?我们有什么样的“MotherShip”模式,一切都处于最顶层.因此,不是游戏创造角色创造武器,我们让游戏(或其他一些类)创造所有这些.
这样,如果我们想要为角色添加新武器,游戏类可以自己创建武器并注入它.不知道该怎么做.谢谢
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。