C++飞线图案

Flyweight Pattern in C++

本文关键字:飞线 C++      更新时间:2023-10-16

创建轻量级模式时,通常如何存储超级对象。比方说我创造了一架飞机。

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,在这种情况下使用boost。