1
我不明白如何使用boost::flyweight
作为GOF模式。有什么地方存在的例子吗?如何使用boost :: flyweight作为GOF模式?
例如,我期望它的用法如下。必须有一些轻量级容器,它们是“胖”对象。这个容器可以为某些对象提供一些轻量级的“持有者/描述符”。我可以将描述符存储在某个容器中。
我不明白如何从boost::flyweight
接收对象的“持有者/描述符”。
我不明白如何使用boost::flyweight
作为GOF模式。有什么地方存在的例子吗?如何使用boost :: flyweight作为GOF模式?
例如,我期望它的用法如下。必须有一些轻量级容器,它们是“胖”对象。这个容器可以为某些对象提供一些轻量级的“持有者/描述符”。我可以将描述符存储在某个容器中。
我不明白如何从boost::flyweight
接收对象的“持有者/描述符”。
模式实现不需要将1:1映射到原始模式描述。这是好东西,因为可以使用GoF正在使用的任何一组功能中不具备的语言功能,以使该实现更具性能,更简洁,更易维护等等。
The boost::flyweight
is the "lightweight holder/descriptor":
Boost.Flyweight可以很容易地通过提供类模板
flyweight<T>
,它作为一个下拉更换为const T
使用常见的编程方法。
我还没有得到。例如,在文本编辑器的情况下,我需要包含用户输入的eath字母的“描述符”列表的容器。那么如何用boost来实现呢?它必须是flyweigts的列表? (std :: list> line;) –
AeroSun
@AeroSun如果您查看文档中的示例,如[this one,about formatted text processing](http://www.boost.org/doc /libs/1_63_0/libs/flyweight/example/html.cpp),你会发现它们的确如此:'typedef flyweight character; std :: vector scanned_html;' –
milleniumbug
Thx很多!现在我明白了。它与GoF模式有所不同。 boost实现看起来非常简单,但我不确定是否可以访问内部对象存储库。 – AeroSun