c++ - C++ 享元模式

标签 c++ oop design-patterns

创建享元模式时,通常如何存储多余的对象。假设我创建了一架飞机。

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/

相关文章:

c++ - 使用 vector 和字符串函数返回字符串?

c++ - if 表达式中的操作顺序是否改变?

java - 使用任一策略将记录发送到消息队列

java - 连续对象值提取器的设计模式

c++ - 在 Eclipse CDT 中读取/写入文件的目录有问题

c++ - OpenSSL 在客户端和服务器之间建立连接

MATLAB 如何从原始类中的类中的方法修改值类的属性?

c++ - 无法定义在另一个类中公开声明的类(以及更多问题)

design-patterns - 设计模式什么时候会成为问题而不是解决方案?

php - Zend_Framework- 在哪里放置 $_GET 和 $_POST(HTTP 请求)处理?