Я создал несколько базовых классов для обобщения функциональности. Эти классы унаследованы бетонными CDI бобы как:Сериализуемое на абстрактных базовых классах, предназначенных для JSF/CDI beans
@Named
@WhateverCdiScoped
public class PseudoEntityManager extends AbstractManager<PseudoEntity> implements Serializable
{
...
}
Q-х:
Это хорошая практика, чтобы положить интерфейс Serializable
на абстрактный базовый класс, здесь AbstractManager<T>
, так что исполнители не необходимо поставить implements Serializable
на каждый конкретный подкласс (как показано выше)?
Каковы плюсы и минусы для «политики базового класса» и «конкретной политики подклассов»?
Возникают ли какие-либо другие последствия, например, о местонахождении private static final long serialVersionUID = ...;
?
Я сделал это с моими POJO. Поскольку POJO - это то, что я собираюсь сериализовать, имеет смысл иметь абстрактный суперкласс, который реализует «Serializable». Не знаю точно, если это относится к вашим фазам. –