我有一些几乎相同的代码,但是在主变量上使用绝对不同的类型,它们之间没有继承。具体来说,我正在用Roslyn针对C#和VB.NET编写具有以下类型的分析器:
Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax
我想知道是否因为代码在做相同的事情,我应该将其保持为DRY,将其尽可能少地拆分为单独的(但类型除外),还是将它们完全分开,因为这两种方法是不相关,将来的更改可能会迫使一个版本更改,而另一个版本则不能更改(尽管这不太可能)?
编辑:大约一年后,我遇到了同样的问题,罗斯林(Roslyn)团队帮助我解决了这个问题:编写一个采用泛型并具有TAttributeSyntax
完成大部分工作的参数的基类。然后,使用最少的需要特定类型的数据编写派生类。