現在、アプリケーションで複数のレイヤーの構成を扱っています。データベースからデータを読み取り、ProductLocations
それらをオブジェクトに入れSolver
ます。別のクエリSalesActivities
では、正しいオブジェクトの奥深くにあるオブジェクトに配置する必要がある製品の場所に接続された複数を読み取りProductLocation
ます。次のコードのように、チェーンされAddSalesActivity
たメソッドになります。
何年にもわたって、私が取り組んできた多くのアプリケーションでこの種の構造を見てきました。時にはより長いチェーンでも。今日それについて考えていたのですが、これは微妙な繰り返しのようなにおいがします。これを処理する別の方法に関するアイデアはありますか? より良いデザインを思いつく方法はありますか?
class Solver{
List<ProductLocation> productLocations;
public void ImportSalesActivities{
//foreach sales activity read find the correct productLocation
//Call productLocation.AddSalesActivity)
}
}
class ProductLocation{
Forecaster forecaster;
public void AddSalesActivity(SalesActivity activity){
forecaster.AddSalesActivity(activity);
}
}
class Forecaster{
SalesActivityResolver resolver;
public void AddSalesActivity(SalesActivity activity){
resolver.AddSalesActivity(activity);
}
}
class SalesActivityResolver{
List<SalesActivity> resolvedActivities;
public AddSalesActivity(activity){
//update resolved activities based on complicated criteria.
}
}