Я настраиваю возможность для моего сервера узлов загружать правильную информацию из моей БД (postgres) для визуализации определенного клиентского представления.В настоящее время я выполняю рефакторинг своего серверного кода, чтобы следовать объектно-ориентированному подходу с конструкторами классов.
В настоящее время он у меня есть, так что Readers
- это класс функций, которые отвечают за выполнение запросов на чтение на моембаза данных.Я унаследовал классы, такие как MainViewReader
и MatchViewReader
, и все они наследуются от класса "Reader", который создает соединение с postgres, используя библиотеку pg-prom .
Проблема в том, что я не могу использовать два читателя представления, или они будут открывать дубликаты соединений, поэтому я нахожу себя пишущим избыточный код.Поэтому я считаю, что у меня есть два варианта дизайна, и мне было интересно, что было более эффективным:
- Вместо того, чтобы устанавливать шаблон как представление сервлета, вместо этого установите шаблон как таблица, читаемая с помощью этогокласс, то есть
NewsTableReader
"MatchTableReader
. Преимущество этого заключается в том, что ни один из кодов не является избыточным и может использоваться в различных сервлетах, а Con - то, что мне придется прервать соединение с postgres на каждом экземпляре класса Reader до того, каксоздание нового экземпляра как такового:
const NewsTableReader = NewsTableReader()
await NewsTableReader.close()
const MatchTableReader = MatchTableReader()
await MatchTableReader.close()
Просто просмотр читателей.Преимущество состоит в том, что это только одно постоянное соединение, минусы в том, что существует много избыточного кода, если я загружаю данные из одних и тех же таблиц в разных представлениях, например:
const MatchViewReader = MatchViewReader()
await MatchViewReader.load_news()
await MatchViewReader.load_matches()
Какой подходбольше всего повлияет на мою производительность?