枚举与具体类来表示对象类型
本文关键字:表示 对象 类型 枚举 | 更新日期: 2023-09-27 18:27:22
基本上,我需要实现资源(黄金、钢铁等(功能及其数量,我想知道是将单个资源类与 resourceType 字段一起使用更好,还是最好使用许多继承资源的 ConcreteResource 类。以下是一些示例,以便更好地理解我的问题:
使用枚举:
class Resource
{
private ResourceType resourceType;
private int quantity;
}
enum ResourceType
{
ConcreteResource1,
ConcreteResource2
}
使用具体类:
abstract class Resource
{
private int quantity;
}
class ConcreteResource1 : Resource
{
}
class ConcreteResource2 : Resource
{
}
这实际上取决于对象的使用。
使用类可以获得更多功能:
- 它可以继承,
- 它可以有方法,
- 它可以具有属性,字段等...
因此,一般来说,如果您的对象在方法、变量、接口等方面不相似(也就是说,它们是两个完全不同的对象(,则应使用 class
。但是,如果您的对象除了"类型"之外几乎相同,那么Enum
就足够了。
在您的示例中,假设两种金属的使用方式完全不同,一种有一组方法 [A1,A2,...,An],另一种有 [B1,B2,...,Bm],那么最好通过class
可能继承来自同一MetalBase
类来区分它们。
但是,如果它们的使用方式几乎相同,那么您应该考虑使用Enum