Я всегда старался избегать использования статических методов. Но я также старался, чтобы мой код был максимально читабельным и коротким.Должен ли я использовать статические/общие методы для чтения:
У меня есть список прокси, и для всех из них я должен выполнить 5 различных валидаций.
Для меня эти проверки настолько различны, что мне не хочется помещать их в один большой класс проверки. Особенно, если валидация будет продолжена, этот класс может вырасти до большого.
Теперь в этом случае я могу написать мой валидатор класс таким образом:
Public Class MyValidator1
Public Shared Sub Validate(proxy As ServiceClient, year As Integer)
Dim args = New Arguments()
args.Year= year
Try
Console.WriteLine("Test")
Console.WriteLine("--------------")
Dim result = proxy.GeneratReport(args)
Console.WriteLine("No errors")
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
Console.WriteLine()
End Try
End Sub
End Class
это, как это реализовано:
For Each proxy In _proxies
Console.WriteLine(proxy.Endpoint.Address.Uri.Host)
Console.WriteLine("------------------------")
MyValidator1.Validate(proxy.Value, jaar)
MyValidator2.Validate(proxy.Value, jaar)
MyValidator3.Validate(proxy.Value, jaar)
MyValidator4.Validate(proxy.Value, jaar)
MyValidator5.Validate(proxy.Value, jaar)
Next
я могу Offcourse сделать мои методы нестатическими/общей, но это потребовало бы, чтобы я создал экземпляр каждого валидатора.
Что было бы за и против каждого выбора. Для меня это проще читать со статическими реализациями.