【发布时间】:2014-06-08 16:06:54
【问题描述】:
我看了一些设计模式书,发现了一个有趣的点:他们创建了很多类。有时我似乎可以添加一个字段而不是创建类。例如
使用类实现:
public class Animal
{
}
public class Dog : Animal
{
}
使用状态实现:
public class Animal
{
public AnimalType AnimalType;
}
var dog = new Animal();
dog.AnimalType = AnimalType.Dog;
也许还有另一种更好的方法来创建狗对象,我只是想说明一下。那么哪种方法更好呢?
【问题讨论】:
-
这似乎更适合Programmers SE
-
您要我们回答的是整个组合与继承的争论。这是非常广泛的,你最好阅读一本关于 OO 设计的书(或一些深入的文章)。在这里我会使用继承,因为狗不能突然变成猫,所以使用组合没有任何好处(只会让它难以使用)。
-
@user3580294 我怎样才能把问题移到那里?
-
这正是为什么我觉得“偏爱组合胜过继承”这种“带有歧视性的”表达如此令人反感的原因。
-
我认为解决这个问题的方法是将问题标记为 mod 注意并声明您希望将其移至 Programmers SE,但我不是 100%确定...
标签: java c# oop design-patterns