基本上,我需要实现资源(黄金,钢铁等)功能及其数量,我想知道使用带有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
{
}
答案 0 :(得分:3)
这实际上取决于对象的使用。
使用类可以获得更多功能:
因此,一般来说,如果你的对象在它们的方法,变量,接口等方面不相同(也就是说,它们是两个完全不同的对象),你应该使用{{1} }。但是,如果你的对象几乎相同除了“类型”,那么class
就足够了。
在你的例子中,假设两种金属的使用方式完全不同,一种是方法[A1,A2,...,An],另一种是[B1,B2,...,Bm],那么它是如果Enum
可能继承自同一class
类,则最佳。
但是,如果它们几乎完全相同,那么您应该考虑使用MetalBase