Tôi có một số mã gần giống nhau, nhưng sử dụng các loại hoàn toàn khác nhau, không có sự kế thừa giữa chúng, trên biến chính. Cụ thể, tôi đang viết một bộ phân tích với Roslyn cho C # và VB.NET, với các loại sau:
Microsoft.CodeAnalysis.CSharp.Syntax.AttributionSyntax Microsoft.CodeAnalysis.VisualBasic.Syntax.AttributionSyntax
Tôi tự hỏi liệu, bởi vì mã đang làm điều tương tự, tôi nên giữ nó càng DRY càng tốt, tách ra càng ít càng tốt thành các phương thức riêng biệt (nhưng giống hệt với loại) hoặc tách biệt hoàn toàn bởi vì hai phương thức là không liên quan và những thay đổi trong tương lai có thể buộc một phiên bản thay đổi, nhưng không phải là phiên bản khác (mặc dù điều này là không thể)?
Chỉnh sửa: Một năm sau, tôi gặp vấn đề tương tự và nhóm Roslyn đã giúp tôi giải quyết nó: Viết một lớp cơ sở lấy khái quát và có một TAttributeSyntax
tham số thực hiện hầu hết công việc. Sau đó, viết các lớp dẫn xuất với mức tối thiểu của dữ liệu cần một loại cụ thể.