Приветствую. Существует некая веб-страничка. Она получает данные с сервера через AJAX/WebSocket (способ не важен) в виде JSON-строки следующего вида.
Для авторизованных пользователей:
[{"id": 1, "name": "Худ. литература", "typed": 123040, "averageSpeed": 43420}]
Для неавторизованных:
[{"id": 1, "name": "Худ. литература"}]
Теперь к вопросу. Меня перестал устраивать просто расшифрованный JSON-массив с объектами (понадобилось создать интерфейсы к этим данным) и захотелось вынести эти данные в отдельный тип Category.
Я столкнулся с проблемой: как быть с полями для авторизованных пользователей? Ведь их не должно быть у неавторизованных.
Накидал пару решений:
1) сделать конструктор которому необязательно передавать эти два поля (для гостей).
2) сделать разные сущности вроде UserCategory (который содержит эти поля) и AnonymousCategory (который не содержит).
В поддержку этого решения скажу что если пользователь не авторизован, то по логике моего приложения обращения к этим полям не будет. Т.е. можно сделать некий общий интерфейс между UserCategory и AnonymousCategory, но UserCategory будет содержать также и специфичные для себя интерфейсы.
Какой способ лучше на ваше мнение? Может вы можете предложить что-то другое? Буду рад выслушать, спасибо! (=