当前位置: 首页 > 面试题库 >

空的抽象类是不好的做法,为什么?

爱乐邦
2023-03-14
问题内容

我们的代码库中有几个空的抽象类。我觉得很丑。但是除了这个非常愚蠢的原因(丑陋)之外,我是否应该将其重构(例如,插入空接口)?

否则,代码将很健壮并经过良好测试。因此,如果仅出于“审美”原因,我将通过并保留空的抽象类。

你怎么看?

编辑:

1)“空抽象类”的意思是:

public abstract class EmptyAbstractClass {}

2)“空”的原因:休眠。我根本不掌握这个持久性框架。我只知道不能将接口映射到表,并且由于这个技术原因,类比接口更受欢迎。


问题答案:

在我看来,这是创建对象层次结构的结果,该层次结构最终在其最顶层没有任何通用功能。我怀疑直接子类本身是抽象的,或者至少具有自己的子类。另一个可能性是您的代码中散布了很多instanceof函数

空的最高层本身并不是什么大问题,但我将检查以确认实际上没有常见的功能性存在。假设确实存在,我将看一下父类中的通用功能。我一定会留意instanceof并认真考虑对其进行重构(例如,请参阅重构至模式(Kerievsky))。



 类似资料:
  • 我有一个问题,关于什么是正确的做法,使用SwingU实用程序的调用稍后方法。 所以首先,我想确认我理解正确。 据我所知,对GUI的更改必须在EDT上完成,因为Swing组件不是线程安全的。invokeLater方法将Runnable作为参数,该Runnable中包含的任何内容都将在EDT上运行。因此,对Swing组件的任何调用都被放入一种队列中,在EDT上一次执行一个。 有了这些,我的问题是:使用

  • 我有一个子类,它声明了我的抽象超类中的所有方法,但它仍然给我一个错误,说明我的类不是抽象的。我不知道为什么会抛出这个错误。 我得到的具体错误是 PhoneBookEntry.java: 1:错误:PhoneBookEntry不是抽象的,并且不会覆盖可比中的抽象方法compareTo(Object) 我的问题代码: 还有我的子类:

  • 问题内容: 为什么Object类是Java中em的基类,而不是抽象类? 我已经有很长时间了,这个问题纯粹是出于好奇,仅此而已。我的代码或任何人的代码都没有中断,因为它不是抽象的,但是我想知道为什么他们将其具体化了? 为什么有人要这个Object类的“实例”(而不是引用的存在)?一种情况是糟糕的同步代码,该代码使用对象的实例进行锁定(至少我曾经以这种方式使用过一次……我的错)。 对象类的“实例”是否

  • 问题内容: 在回答了有关如何使用强制释放Java中的对象(那个家伙正在清除1.5GB的HashMap)的问题后,有人告诉我手动调用是一种不好的做法,但是注释并不完全令人信服。此外,似乎没有人敢于赞成,也没有反对我的答案。 有人告诉我这是一种不好的做法,但是后来我又被告知,垃圾收集器的运行不再系统地停止世界,而且它也可以有效地被JVM用作提示,所以我有点不知所措。 我确实知道,JVM在需要回收内存时

  • 问题内容: 我得到了几种解释,但是到目前为止,我还无法理解Java中的抽象类和方法是什么。 有人说它必须与程序的安全性做些关系,另一些人说不是那样。 即使从Dietel&Dietel的书中,我也不明白它的目的。我们何时,何地,为什么使用它? 请像您正在教初学者一样进行解释,非常感谢您的帮助。 问题答案: 抽象类是无法实例化的类。唯一的目的是扩展其他类。 抽象方法是抽象类中的方法(必须声明为抽象),

  • 问题内容: 每位JS意见领袖都说,扩展本机对象是一种不良做法。但为什么?我们会获得出色的表现吗?他们是否担心有人会以“错误的方式”这样做,并向中添加可枚举的类型Object,实际上破坏了任何对象上的所有循环? 以TJ Holowaychuk的should.js为例。他向其中添加了一个简单的吸气剂,Object并且一切正常(源代码)。 这真的很有意义。例如,可以扩展。 是否有反对扩展本机类型的论点?