Дизайн для смешанной структуры в C ++? - PullRequest
0 голосов
/ 15 октября 2019

У меня есть объект A, некоторые поля в AI хотят, чтобы они были инициированы во время запуска сервера только один раз, скажем, Aa, Ab, некоторые поля в AI хотят, чтобы они были инициированы в динамической памяти, поскольку они различаются для каждого запроса. У меня также есть группа объектов B, C, D .., которые имеют те же поля, что и A, но с разными значениями, большинство из них такие же, как A, поэтому я хочу использовать наследование,

ДизайнЯ могу думать о: разделить A на 2 части, StaticA и A, а затем

class A {
 public:
  StaticA* static_data();
  // other getters fo A.c, A.d...
 private:
  Tc c_;
  Td d_;
}

Тогда статический A будет похож на

StaticA {
  public:
   //getter for A.a, A.b
  private:
   Ta a_;
   Tb b_;
}

Тогда, так как я хочу использовать наследование,код становится уродливым, так как мне нужен базовый класс для StaticA / B / C / D, а также A / B / C / D, также я хочу скрыть эти детали от клиентов, поэтому мне нужно будет написать избыточные функции получения вКласс А.

Это правильный способ дизайна? Есть ли другой лучший способ реализовать такую ​​логику смешивания? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...