创建flyweight图案时,通常如何存储超级对象。让我们说我创造了一架飞机。
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数据表中的许多飞机,所以我想创建一个这些对象并将其余信息存储在某处。我是否会创建另一个管理flyweight信息的类,然后可以通过Aircraft对象传递一个键来一次输入一个实例?或者你只是绕过将信息放在对象实例中?
对于这种类型的对象,在不创建多个实例时获得的唯一效率是get和sets吗?
答案 0 :(得分:0)
查看boost flyweight implementation。 在你这样做之后,只需使用boost flyweight。
如果您不想使用boost,请在这种情况下使用boost。