私のプロジェクトの 1 つで、n 層アーキテクチャを使用しています。
DAL (Repository Pattern) <-> BLL (POCO Services) <-> Web UI (ASP.NET MVC)
汎用リポジトリを作成しましたが、DAL レイヤーではすべて問題ありません。
ビジネスロジックレイヤーには、次のように動作するサービスメソッドがあります(ピザのために使用するのが大好きな例:)
myOven.Bake(myPizza);
myPizza
ただし、次のように、オブジェクトの内部にある特定の情報が必要です。
myPizza.GetBakeTime();
私は知っています、私は次のようなものを使うことができます:
myOven.GetBakeTimeFor(myPizza);
myOven
これはそれを計算できますが、その特定のロジックをオブジェクト (ここではサービス層)に入れたくありません。代わりにmyPizza
、
public partial class Pizza
{
public double GetBakeTime()
{
// calculate Bake Time and return, based on other variables
}
}
つまり、ORM で生成されたクラスを拡張して、この機能を提供するということです。
私の質問: これは理論的には可能ですが、 と の両方Domain Logic
をBusiness Logic
同じクラスで使用する場合に考慮すべき考慮事項はありますか?