これを行うためのもっとオブジェクト指向の方法があると確信していますが、その方法はわかりません。さまざまな「レポート」オブジェクトがあります (例: Report1、Report2、Report3 など)。これらのレポート オブジェクトをメソッドの 2 つの引数として受け取るサービス オブジェクトがあります。メソッドには、どの 2 つのレポート オブジェクトがメソッドに渡されたかを判断する大きな if else ブロック ステートメントがあります。このロジックは OO ではないようです。渡された 2 つのレポートを特定し、それら 2 つのレポートに正しいロジックを提供するためのより良い方法はありませんか?制御し、100 行以上の長さになりますか? コマンドパターンはここでうまく機能しますか、それともよりオブジェクト中心のより良いものがありますか?
Report1 r1 = new Report1();
Report2 r2 = new Report2();
Report3 r3 = new Report3();
Report4 r4 = new Report4();
etc...
SomeServiceObject serviceObj = new SomeServiceObject();
var returnedData1 = serviceObj.GetReportLogic(r1, r2);
var returnedData2 = serviceObj.GetReportLogic(r1, r3);
var returnedData3 = serviceObj.GetReportLogic(r3, r4);
etc..
public GetReportLogic(object someReport1, object someReport2)
{
if ((someReport1 as Report1) and (someReport2 as Report1))
{
DoSomething();
}
else if ((someReport1 as Report1) and (someReport2 as Report2))
{
DoSomethingElse();
}
else if ((someReport1 as Report1) and (someReport2 as Report3))
{
DoSomethingElseAgain();
}
etc...
}