Какой лучший шаблон дизайна для прохождения объекта? - PullRequest
0 голосов
/ 02 ноября 2019

У меня есть некоторые проблемы с проектированием архитектуры кода ... Я пишу веб-приложение на Golang с хранилищем SQL. У меня есть две сущности: Пользователь, Местоположение.

type User struct {
    id uint64
    ....
    locationID uint64
    ....
    valueA uint
    lastValueAUpdateTimestamp time.Time

}
type Location struct {
   id uint
   ....

}

В сущности "Пользователь" у меня есть динамический параметр (значение A), который обновляется во времени. Значение обновления A зависит от lastValueAUpdateTimestamp и параметров местоположения пользователя.

Как лучше всего передать объект Location пользователю, основываясь на идентификаторе пользователя locationID? У меня есть несколько вариантов:

  1. Pass объект реестра Location, который имеет функции для получения объекта location из базы данных. У этой опции есть два серьезных недостатка:
    • Иногда значение A не требуется, но для каждого создания объекта пользователя мы должны передать этот реестр ...
    • Иногда в будущем мы можем добавить объект реестра к другомусущности, и мы получим «большой» конструктор.
  2. Скрыть все методы в объекте пользователя, связанные с ValueA, создать новую унаследованную структуру, которая получает объект реестра местоположения в конструкторе, и предоставить доступ к методамсвязан с ValueA ..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...