ドメイン駆動開発_フォルダー構成編_#54_Logics

当サイトではアフィリエイト広告を利用しています。

NDDD

今回はLogicsフォルダーに関して解説していきます。完全に独立したロジックはLogicsフォルダーに入れましょう。ValueObjectやEntityで表現しづらいものはpublicでstaticな割り切ったロジックにします。値とロジックの一体型ではなく,ロジックのみが独立して存在していたほうがいい場合もあります。顧客の購買情報から次に購入されるものを予測するロジック等は,単純に引数を渡すと計算してくれるロジックが独立しているほうが,テストがしやすいです。そういったロジックとして確立されているものがあれば,そのままコードで表現するために,Logicsフォルダーに入れていきます。

Logicsフォルダーの追加

ドメインプロジェクトの直下に「Logics」フォルダーを作成します。その中に「MeasureAnalysis」クラスを作成します。これは計測データを分析するロジックという想定です。

MeasureAnalysisの実装

次のような感じで,publicでstaticなメソッドにして,どこからでも呼び出せるExecuteのようなメソッドを作成します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NDDD.Domain.Logics
{
    public static class MeasureAnalysis
    {
        public static float Execute(
            float value1,
            float value2,
            float value3,
            float value4,
            float value5)
        {

            return 999f; 
        }
    }
}

このような感じで,独立したロジックは,純粋なロジックとして実装します。