2013-08-13 5 views
0

Я всегда старался избегать использования статических методов. Но я также старался, чтобы мой код был максимально читабельным и коротким.Должен ли я использовать статические/общие методы для чтения:

У меня есть список прокси, и для всех из них я должен выполнить 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 сделать мои методы нестатическими/общей, но это потребовало бы, чтобы я создал экземпляр каждого валидатора.

Что было бы за и против каждого выбора. Для меня это проще читать со статическими реализациями.

ответ

0

1) Если ваши методы не зависят от экземпляра InstanceVariable, вы можете сделать их статичными, и в вашем случае, поскольку вы ищете их статичность, Static Class может быть интересен.

2) Если ваши методы не логически сгруппированы, лучше иметь их в отдельных классах, но если только ваш класс растет и становится менее управляемым, вы можете подумать о частичном классе для того же самого.

Смежные вопросы