0

私は常に静的メソッドの使用を避けるように努めてきました。しかし、私は自分のコードをできるだけ読みやすく短く保つように努めてきました。

プロキシのリストがあり、それらすべてに対して 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

もちろん、メソッドを非静的/共有にすることもできますが、これにはすべてのバリデーターのインスタンスを作成する必要があります。

それぞれの選択の長所と短所は何でしょうか。私にとっては、静的実装の方が読みやすいです。

4

1 に答える 1