我有一个“项目”,其数据可以用3种方式表示。我可以以运行成本从一种表示转换为其他表示。一旦我做了转换,我想保留新的表示。无需“修改”核心数据,任何数据表示都可以转换为其他数据。由于运行时成本,我想要一个包含3个数据表示的类。在任何时候,其中1到3个将是有效的。具有多个表示的项目的C++设计模式
这真正的一点是因为它也有访问方法,用户可以在这里访问某些东西。这可以从1个或更多的表示中获得。例如,你可以从representation1得到“范围”,从表示2或3得到“范围”。
我的解决方案是创建具有3个表示形式的类作为成员数据(以及如何知道它们是否有效)。然后我创建了一个getRange()方法,该方法在内部知道它需要哪个表示,并在必要时创建它。这工作正常,解决了我的所有问题,除了get方法不能是const。
所以这个解决方案的真正问题是,即使是这个类的“常量”实例也不是真正的常量,因为它在内部可能会创建其他表示。但它确实是“不变的”,因为改变表示不会修改核心数据。
是否有C++设计模式可以帮助这个类?有什么建议么?
这太棒了。正是我想要的。比我预期的要容易得多!谢谢。 – user3375624