我创建了一些基类来概括功能。这些类由具体的CDI bean继承,如:
@Named
@WhateverCdiScoped
public class PseudoEntityManager extends AbstractManager<PseudoEntity> implements Serializable
{
...
}
问的:
将Serializable
接口放在抽象基类(这里是AbstractManager<T>
)上是一个好习惯,这样实现者就不必将implements Serializable
放到每个具体的子类上(如上所示)?
“基类政策”和“具体子类政策”有哪些利弊?
是否有任何其他后果被忽视,例如关于private static final long serialVersionUID = ...;
的位置?
答案 0 :(得分:0)
如果你这样做,每个类都应该有自己的serialVersionUID(因为它是私有的,它只属于那个类)。
问题的其余部分实际上是一个编码标准问题。我个人认为,可序列化以及大多数其他标记接口就像任何其他接口一样。他们处理多态性很好,你不需要重新声明接口的使用。明白你正在做的就是让它们可序列化。你没有通过这样做来强制执行任何CDI范围。