私は常に静的メソッドの使用を避けるように努めてきました。しかし、私は自分のコードをできるだけ読みやすく短く保つように努めてきました。
プロキシのリストがあり、それらすべてに対して 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
もちろん、メソッドを非静的/共有にすることもできますが、これにはすべてのバリデーターのインスタンスを作成する必要があります。
それぞれの選択の長所と短所は何でしょうか。私にとっては、静的実装の方が読みやすいです。