有人能指出我的开源C ++项目(最好不是lib),广泛使用基于策略的设计吗?
答案 0 :(得分:1)
Alexandrescu明显的一个:Loki
正在积极发展。
答案 1 :(得分:1)
好吧,我想任何使用STL容器的C ++应用程序(由Allocator参数化,有时候是比较器)都广泛使用基于策略的设计。这是STL的一块石头,甚至看到它在SGI看到了光。
答案 2 :(得分:1)
任何正在使用boost的项目:-) http://www.boost.org/community/generic_programming.html#policy
如果你的意思是启动基于策略的对象,那么很多项目都会使用boost。例如,http://programmingexamples.net/wiki/CPP/Boost/BGL/DijkstraDirected 或者你可以在github上查看大项目https://github.com/search?q=%23include+%3Cboost%2Fgraph%2Fgraph_traits.hpp%3E&type=Code&ref=searchresults
如果您的意思是定义基于策略的对象,那么大多数用例都是库。原因在于,如果某些东西需要大量定制并且可以推广,它就会变成一个库(即使是供内部使用)。如果你只是编写一个不需要定制对象和多态的简单程序,那么它就不会使用很多基于策略的设计。 对于那些,您还可以在github上搜索,尝试一些基于策略的常见语法。
在我的科学工作中,我使用了依赖于策略的boost的odeint库。当我编写代码时,我从一个专业的哈密顿函数开始,而不是用策略来概括它,它基本上变成了我在许多其他项目中使用的库。