多くの子クラスが継承する抽象クラスがあります。
public abstract class CrawlerBase
{
public abstract void Process(string url);
}
私はこのループに取り組んでいます:
foreach (var item in result)
{
object crawler = null;
switch (item.Type)
{
case "Trials":
var t = new Trials();
ct.Process(item.URL); //repetitive code.
break;
case "Coverage":
var c = new Coverage();
c.Process(item.URL); //repetitive code.
break;
default:
break;
}
// crawler.Process(item.URL);
}
item.type 文字列は、どの子クラスをインスタンス化する必要があるかによって異なります。すべての子クラスが基本クラスを継承するため、すべての case ステートメントで .Process() を呼び出すのは非常に反復的です。コメントに示されているように、オブジェクト「クローラー」をインスタンス化される子クラスにキャストし、switch ステートメントの最後でクローラー.Process() を呼び出します。これどうやってするの?