【发布时间】:2025-12-16 04:35:01
【问题描述】:
我正在学习 C# 并尝试做简单的面向对象练习。
我有三个武器类,“弓、匕首、矛”,所以我做了一个接口,并从这个接口继承了IWeapon。
现在用户必须选择一种武器,所以我想制作武器收藏,我正在尝试制作 IWeapons 列表,这是正确的方法吗?制作列表类型的 IWeapon 不是不好的做法吗?因为,我知道接口就像一个合同,我认为用接口类型制作 List 是个坏主意。一种方法是将接口更改为抽象类,但我想使用接口。
private static List<IWeapon> weapons = new List<IWeapon>();
方法对不对?
【问题讨论】:
-
是的,这没有问题,只要所有三个武器类别都没有自己的属性......
-
是的,我相信拥有一个接口列表并没有错。你的设计没问题
-
这其实是一个很常见的模式,这里没有错。
-
虽然你的方法很好,但这些问题都是基于意见的,因此在 * 上很糟糕。
-
您可能对这个练习别无选择,但可能想阅读 Eric Lippert 题为 Wizards and Warriors 的博客系列(链接到第 1 部分,共 5 个部分)