Ich habe einen Code, der fast identisch ist, aber absolut unterschiedliche Typen ohne Vererbung zwischen ihnen für die Hauptvariable verwendet. Insbesondere schreibe ich einen Analysator mit Roslyn für C # und VB.NET mit den folgenden Typen:
Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributeSyntax
Ich frage mich, ob ich, weil der Code dasselbe tut, ihn so trocken wie möglich halten soll, indem ich ihn so wenig wie möglich in separate (aber mit Ausnahme des Typs identische) Methoden aufspalte oder ihn vollständig trenne, weil die beiden Methoden identisch sind Nicht verwandte und zukünftige Änderungen könnten eine Version zur Änderung zwingen, aber nicht die andere (obwohl dies unwahrscheinlich ist)?
Bearbeiten: Etwa ein Jahr später stieß ich auf dasselbe Problem, und das Roslyn-Team half mir bei der Lösung: Schreiben Sie eine Basisklasse, die Generika verwendet und einen TAttributeSyntax
Parameter hat, der die meiste Arbeit leistet. Schreiben Sie dann abgeleitete Klassen mit dem Minimum an Daten, die einen bestimmten Typ benötigen.