创建享元模式时,通常如何存储多余的对象。假设我创建了一架飞机。
class Aircraft
{
private:
char make[32];
char model[32];
double cruiseSpeed;
double cruiseAltitude;
double climbRate;
double wingspan;
double fuselageLength;
AircraftType craftType;
public:
Aircraft(void);
Aircraft(AircraftType);
~Aircraft(void);
void setMake(char*);
void setModel(char*);
void setCruiseSpeed(double);
void setCruiseAltitude(double);
void setClimbRate(double);
void setWingSpan(double);
void setFuselageLength(double);
char* getMake();
char* getModel();
double getCruiseSpeed();
double getCruiseAltitude();
double getClimbRate();
double getWingSpan();
double getFuselageLength();
};
还可以说我正在从 xml 数据表中读取许多飞机,所以我只想创建一个这些对象并将其余信息存储在某个地方。我是否会创建另一个管理享元信息的类,然后可能将它与 Aircraft 对象一起传递给它以一次输入唯一的实例?或者您是否会完全绕过将信息放入对象实例?
对于这种类型的对象,不创建多个实例获得的唯一效率是 get 和 set 吗?
最佳答案
查看boost flyweight implementation . 完成后,只需使用 boost flyweight。
如果你不想使用 boost,在这种情况下使用 boost。
关于c++ - C++ 享元模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20486587/