是不是类库?

时间:2010-10-18 16:52:37

标签: vb.net

我有两个项目; A和B,其中B需要使用项目A中的一些类。因此,我将B添加到A的解决方案中,并且在B中我添加了对项目A的引用。

这是明智的吗?或者我应该把这些类放在类库中?

我看到如果我还想从项目A中的菜单选项打开表单/程序B,则A需要对B的引用。如果B已经引用了A,那么这是不可能的。但是如果我使用公共类的类库,那就没关系,因为B不需要A引用。

这听起来合乎逻辑吗?很高兴知道将项目放在同一个解决方案中的典型原因是什么,如果建议使用库积极地重构两个项目之间的公共代码,即使它只是几个类..但我从来没有做过我自己的库,所以有点不确定何时使用它。如果你有一些原则会很高兴听到..

5 个答案:

答案 0 :(得分:3)

听起来像是一个类库的完美用例。

将常用功能放在第三个类库项目中,让A和B引用它。

答案 1 :(得分:2)

如果您计划在两个项目中使用相同的类,则可以使用共享库。这不仅仅是方便。具有相同名称,名称空间和成员的两个相同的类被认为是完全不同的类型,如果它们在不同的程序集(包括EXE)中定义。将公共类移动到类库C中,并在A和B中引用C。众所周知的指导校长是DRY:不要重复自己。

-Oisin

答案 2 :(得分:1)

通常,类库用于多个项目之间的通用功能。换句话说,正是你正在处理的事情。所以你应该把它拉到一个类库中。

从那里,有两种可能性:如果两个项目之间的共同功能总是相同,那么它应该是一个单独的项目。如果它可以改变为一个而不是另一个,则将其复制到两个项目中。您仍然应该将它重构为类库,因为这样可以使它最初更容易。另请注意,在第一种情况下,将会有另一个项目需要维护,并有自己的发布计划和管理难题。

通常,单个解决方案中的多个项目是用户界面和各种库以及其他支持项目。如果有多个用户界面,通常会将它们发送到同一系统,例如用户界面和管理界面,或者可能是不同平台的界面。

答案 3 :(得分:0)

原则上,应避免循环依赖,因此,创建类库并添加对它的引用是有意义的。

答案 4 :(得分:0)

类库是一个很好的解决方案,特别是如果您计划使用A参考B。

如果您需要A(或B)来实际实现这些类的某些功能,您可以考虑创建一个包含对象接口的类库,这样A和B就可以在它们的接口下来回传递对象实施了自己。