抽象类是一种很好的做法?

时间:2010-02-16 18:47:00

标签: abstract-class

我有这种情况:

这两个属性具有以下属性:

  • 表[Id,Name,Parent_Id]
  • 字段[Id,Name,Creation_Time,Creation_Date]

使用Abstract Class来实现ID和NAME的属性和属性是一个好习惯,这样我可以节省一些时间来编写代码;或者更好地重写每个类的每个属性和属性?或者可以使用界面?

感谢。

3 个答案:

答案 0 :(得分:2)

我认为这两种选择都没有意义。如果您使用抽象类,当有人查看从您的抽象类继承的类时,他们可能会很难发现该信息的位置。这可能是继承最糟糕的部分:将某些类中的重要细节隐藏在继承链的某个地方。

接口是类必须遵守的一种契约,因此通常它可以被其他一些机制使用。一个很好的例子是迭代器,这样的类通常需要一个“下一个”方法。如果订阅了一个要求它具有“下一个”方法的接口,则可以保证可以迭代类的实例。这样一种想要遍历你的实例的机制可以知道它会起作用。如果这对你想做的事情没有意义,也许不要使用它。

答案 1 :(得分:0)

子类应与其父类具有“是”关系。表和字段似乎是不同的实体,应该避免继承。但另一方面,它们可以有一个像DatabaseObject(或类似的东西)这样的共享基类来实现公共属性。但如果这看起来太人为,我会在这些简单的情况下避免继承。

答案 2 :(得分:0)

如果您想解决代码重现问题,可以使用它。

但是如果你可以使用它,从逻辑方面,你必须明白所有类都扩展了这个abstarct类必须有共同点。