У меня есть несколько сущностей, которые выглядят так:
@Entity
public abstract class AbstractEntity{
@Id
private Long id;
String name;
User author;
@Lob
byte[] data;
}
public class EntityOne extends AbstractEntity{
// nothing new
}
public class EntityTwo extends AbstractEntity{
// nothing new
}
public class EntityThree extends AbstractEntity{
// nothing new
}
byte[]
, определенный в суперклассе, является интересной частью каждой сущности подкласса. Причина, по которой я хочу создать подкласс, состоит в том, чтобы обеспечить соблюдение правил набора текста, поскольку для некоторых частей программы требуется EntityThree
, а для некоторых частей программы требуется EntityTwo
. byte[]
будет иметь совершенно другое значение от подкласса к подклассу.
Это кажется немного странным, потому что я не ожидаю, что какой-либо из подклассов добавит какие-либо поля или методы ... Так что я использую наследование только в качестве инструмента ввода.
Это разумный дизайн? Лучший способ сделать это? Это нарушает какие-либо лучшие практики?