我应该使用静态/共享方法来提高可读性:

时间:2013-08-13 08:39:51

标签: .net static conceptual

我一直都在努力避免使用静态方法。但我也一直试图尽可能地保持我的代码的可读性和简短性。

我有一个代理列表,对于所有代理我应该执行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

我可以将我的方法设为非静态/共享,但这需要我创建每个验证器的实例。

每种选择的利弊是什么。对我来说,使用静态实现阅读更容易。

1 个答案:

答案 0 :(得分:0)

1)如果你的方法不依赖于InstanceVariable,你可以将它们设为静态,在你的情况下,因为你希望它们都是静态的,Static Class可能是你感兴趣的。

2)如果你的方法在逻辑上没有更好的分组以便将它们分开,但是如果你的方法只是关于你的类增长并且变得不那么可管理,你可以考虑考虑部分类。