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

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

NDDD

今回はHelpersフォルダーのお話をします。前回はLogicsフォルダーに独立したロジックを入れていくというお話をしました。Helpersも独立したロジックですが,ビジネスロジックを含むかどうかで区別しています。

Helpersフォルダーに入れるもの

Helpersフォルダーには,独立したロジックでビジネスロジックを含まない物を入れます。ビジネスロジックを含まないというのは,例えば.NetFrameworkのクラスライブラリに存在していればよかったようなものです。例えば配列をカンマ区切りにするなど,アプリケーションに関係なく,共通で使えるようなメソッドの事です。こういったものはHelpersフォルダーに入れておいて,今後関わるアプリケーションで使いまわせるように区別して実装しておきます。

Helpersフォルダーの作成

ドメインプロジェクトに「Helpers」フォルダーを作成します。

FloatHelperクラスの作成

作成したHelpersフォルダーの中に,新しいクラスで,FloatHelperクラスを作成し,次のように実装します。

using System;
using System.Linq;

namespace NDDD.Domain.Helpers
{
    public static class FloatHelper
    {
        public static string RoudString(
            this float value,
            int decimalPoint)
        {
            value = Convert.ToSingle(Math.Round(value, decimalPoint));
            return value.ToString(decimalPoint == 0 ?
                string.Empty : "." +
                string.Concat(Enumerable.Repeat("0", decimalPoint)));
        }
    }
}

Float値を指定した小数点以下桁数で四捨五入し,足りない桁数を0で埋めるようにしています。こういった関数もマイクロソフトが作ってくれていればいいのですが,無いのでこのように実装します。

クラスの分割の基準

クラスの分割は型の単位ごとや,テクノロジー単位などで作成します。例えばStringHelperやXmlHelperなどです。今回は拡張メソッドで作成しましたが,通常のメソッドでももちろん構いません。