我为不同的客户(Bob,Rick,Sue,Eve)开发了类似的计算包。计算包由若干计算模块(A,B,C,D,......)组成,它们以“责任链”模式组织。装配是用抽象工厂完成的。 由于许多代码在不同客户端的计算模块之间共享,因此它们按层次结构组织:
ICalcA
|
AbstrCalcA
| |
AbstrCalcAMale AbstrCalcAFemale
| | | |
CalcABob CalcARick CalcASue CalcAEve
(B,C,D,......的相同层次结构。)
现在发布管理规定,我按照继承级别组织源代码:
Project: CalcCommon
[CalcA]
ICalcA.cs
AbstrCalcA.cs
[CalcB]
ICalcB.cs
AbstrCalcB.cs
[CalcC]
...
Project: CalcMale
[CalcA]
AbstrCalcAMale.cs
[CalcB]
AbstrCalcBMale.cs
[CalcC]
....
Project: CalcBob
[CalcA]
CalcABob.cs
[CalcB]
CalcBBob.cs
[CalcC]
....
Project: CalcFemale
....
对于Bob,我发布了CommonCalc.dll,CalcMale.dll和CalcBob.dll。
现在这一切都很好,但是对于许多模块,辅助类等,在同一模块层次结构中工作非常麻烦。密切相关的类(例如ICalcA和CalcABob)远在解决方案资源管理器中。我的团队中没有人在没有搜索班级名称的情况下似乎找不到任何东西 - 如果他能记住的话。功能往往以错误或多层次结构实现。
我该如何改善这种情况?
我在考虑为每个Module 和层次结构级别创建一个项目(Projects:CalcCommonA,CalcMaleA,CalcBobA,CalcRickA,CalcCommonB,CalcMaleB,...),并通过解决方案文件夹对它们进行分组。 / p>
答案 0 :(得分:0)
我刚刚发现解决方案资源管理器顶部的新搜索栏可以派上用场。
步骤1:确保与功能A相关的所有类在其类名中包含“FeatureA”。
步骤2:如果在FeatureA层次结构中工作,请在搜索/过滤栏中输入“FeatureA”。
这将仅根据需要显示此特定层次结构的类。