У меня есть объект 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, также я хочу скрыть эти детали от клиентов, поэтому мне нужно будет написать избыточные функции получения вКласс А.
Это правильный способ дизайна? Есть ли другой лучший способ реализовать такую логику смешивания? Спасибо!