独自の実装を続ける前に、同じ関数を実行する必要があるさまざまなメソッドがあります。今私は各メソッドでこれらの関数を実装することができましたが、これを行うにはattributes
を悪用する方法があるのだろうかと思っていましたか?非常に簡単な例として、すべてのネットワークコールでネットワーク接続を確認する必要があります。アトリビュートを使用してメソッドを呼び出す
public void GetPage(string url)
{
if(IsNetworkConnected())
...
else
...
}
これは動作しますが、私は、ネットワークを使用する各メソッドのIsNetworkConnected
メソッドを呼び出し、個別にそれを処理する必要があると思います。代わりに、私はこの
[NetworkCall]
public void GetPage(string url)
{
...
}
を行うしたいネットワークが利用できない場合は、そうでない場合はGetPage
が呼び出され、エラーメソッドが代わりと呼ばれ、GetPage
は無視されます。
これはAspect Orientated Programmingによく似ていますが、いくつかの呼び出しではフレームワーク全体を実装したくありません。これは実装よりも学習の練習のほうが多いので、このようなものがどのように実装されるのが最も好奇妙なのです。
継承はどうですか?それらのすべてを、基本的な "ネットワーク"クラスまたはそのようなものから派生させる。 – gdoron