【问题标题】:Which design pattern should be used for algorithm implemented with two libraries [closed]使用两个库实现的算法应该使用哪种设计模式[关闭]
【发布时间】:2013-11-12 22:44:21
【问题描述】:

我的算法在两个版本中实现,每个版本都使用特定的库(MKL 和 ITK)。提供这些实现是因为我们的用户只能使用其中一个库。请注意,在编译时只应加载并编译一个。我很困惑这里应该使用哪种设计模式。

谢谢

【问题讨论】:

  • 听起来像策略模式,虽然编译时间位更多是插件...
  • 那么,您想创建两个版本的库,还是只创建一个可以与运行时可用的任何底层库一起使用的版本?如果我是你,我宁愿做第二个。
  • 我也更喜欢第二个,但还有什么模式吗?

标签: c++ algorithm templates design-patterns


【解决方案1】:

在 C++ 中,模板方式在称为 policy 中执行“策略设计模式”。在 Andrei Alexandrescu 的《现代 C++ 设计》一书的第一章中对它进行了很好的描述。为什么,模板方式,你可能会问?因为它是编译时间,只有你使用的代码才会被编译。

我不能解释太多,因为我实际上没有太多使用它的经验,但简而言之,模板不必是类型(如 int、Person、float 等),它可以是一个函数或一个类。所以你可以编写类似的代码 Printer<ScreenStrategy> p; // or wathever!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多