我有一个类,类中使用了其他类的map或者vector
class MValue {
public:
int iValue;
void* pValue;
double dVlaue;
...
std::vector<int> vValue;
};
class MMaster {
public:
MValue value;
std::map<int, MValue> values;
};
现在我需要将MMaster序列化,首先需要获取MMaster大小(不是sizeof,需要包括map.size())
我想首先获取MValue的大小,然后乘上map.size()
class MValueSize {
public:
static int getSize(MValue& value) {
...
}
};
这样就可以直接使用
getSize(master.value);
获取value的大小
但我感觉这样不是好的设计,希望直接使用
master.value.size()
即可获取value大小,但是又不希望修改原来的MValue类的代码
了解到有装饰器模式,但这个模式好像每次都会拷贝一个MValue值到装饰器里面,这样消耗太大
请问有其他好的设计模式吗?
那你就在MValue 这个类里面写一个函数获取到当前大小不久行了