【问题标题】:Base Class for multiple classes in different projects不同项目中多个类的基类
【发布时间】:2015-05-12 13:27:26
【问题描述】:

这更像是一个设计问题。

目前我有多个类(在不同的项目中),它们具有不同的角色,但有一种通用的方法可以执行相同的职责。我正在考虑为所有这些类创建一个基类,这样它们每个都可以继承这个类并实现这个方法来节省重复。

我的问题是我应该为多个项目中的所有类设置一个基类,还是应该为每个项目设置一个基类?

谢谢,

【问题讨论】:

  • 在这种情况下,您使用哪个 ide 高度相关。请向我们提供信息:)
  • 如果基类相同,你当然不应该在每个项目中重复代码。
  • @Cyber​​ 是的,你是对的,我不应该在基类中复制代码

标签: c++ inheritance


【解决方案1】:

我会定义一个包含那个共享方法的接口。然后我会将该接口放入它自己的项目中。然后让您具体实现引用该项目并实现接口。

像这样..

  • Repositories.proj
    • IRepository
  • EntityFrameworkImpl.proj
    • 存储库:IRepository
  • NHibernateImpl.proj
    • 存储库:IRepository

【讨论】:

  • 是的,这个结构将是我将采用的结构,并将使用静态库作为接口。
【解决方案2】:

一般来说,为所有项目创建 1 个类比为每个项目创建相同的类要好得多。

实际上我敢说,在几乎任何情况下,重用相同的代码,而不是复制它。总是更好

一般来说,静态库是解决您当前面临的问题的最佳工具。

编辑:

如果您在 Visual Studio 中工作,我将按如下方式解决此问题。创建一个包含基类声明和定义的项目。这个项目应该是静态库类型。

其他项目应在包含目录中包含包含头文件的目录。以及附加依赖目录中包含lib文件的目录。

【讨论】:

  • 是的,我把我的基类放在一个静态库中......这很有意义。
猜你喜欢
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 2015-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-28
  • 2018-03-24
相关资源
最近更新 更多