История изменений
Исправление
Legioner,
(текущая версия)
:
Если у тебя класс это просто хранилище данных, достаточно одного класса, для несуществующих полей храни null, в геттере выбрасывай исключение. Ну и сделай свойство «тип объекта».
Если у тебя класс имеет поведение помимо данных, тогда надо смотреть на это поведение. Если у тебя планируются if-ы по типу объекта (если анониный, то одно поведение, если не анонимный, то второе), то надо два класса. Если это поведение будет идентичным, то два класса не нужны.
Как общий совет могу порекомендовать начинать с простого решения, одного класса. Потом сам увидишь, если нужно делать два класса. Наследование это очень опасный инструмент и его лучше применять только там, где это необходимо. Просто так не стоит.
Исходная версия
Legioner,
:
Если у тебя объект это просто хранилище данных, достаточно одного класса, для несуществующих полей храни null, в геттере выбрасывай исключение. Ну и сделай что-то вроде типа объекта.
Если у тебя объект имеет поведение помимо данных, тогда надо смотреть на это поведение. Если у тебя планируются if-ы по типу объекта (если анониный, то одно поведение, если не анонимный, то второе), то надо два класса. Если это поведение будет идентичным, то два класса не нужны.
Как общий совет могу порекомендовать начинать с простого решения, одного объекта. Потом сам увидишь, если нужно делать два объекта. Наследование это очень опасный инструмент и его лучше применять только там, где это необходимо. Просто так не стоит.