【问题标题】:Should i use Static/Shared Methods for readability:我是否应该使用静态/共享方法来提高可读性:
【发布时间】:2013-08-13 08:39:50
【问题描述】:

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

我有一个代理列表,我应该对所有代理执行 5 种不同的验证。

对我来说,这些验证是如此不同,以至于我不想将它们放在 1 个大型验证类中。特别是如果验证将被扩展,这个类可能会变得很大。

现在在这种情况下,我可以这样编写我的验证器类:

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

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

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

【问题讨论】:

    标签: .net static conceptual


    【解决方案1】:

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

    2)如果您的方法在逻辑上没有更好地分组以将它们放在单独的类中,但如果它只是关于您的类增长和变得更难管理,您可以考虑考虑使用部分类。

    【讨论】:

      猜你喜欢
      • 2012-05-18
      • 2018-11-02
      • 2012-06-17
      • 1970-01-01
      • 2014-05-24
      • 1970-01-01
      • 2011-02-23
      • 2015-11-25
      • 1970-01-01
      相关资源
      最近更新 更多