0

私は、従来のデータ/ビジネス/プレゼンテーションの階層化アプローチを実装するasp.net MVCアプリケーションに取り組んでいます。

私のエンティティ モデル (人を表す) の 1 つには、「州」のフィールドを含む住所/連絡先情報が含まれています。私のデータ ソース (ほとんど制御できません) は、州の値をフルテキストで提供します (例: "カリフォルニア" と "CA"、"フロリダ" と "FL" など)。

フルテキスト値を略語に変換するために使用する静的ヘルパー クラスを作成しました。

私の質問は、このヘルパー クラスをどこで参照し、変換をどこで行うべきかということです。

次のオプションが表示されます。

  • この静的クラスを参照し、get 時に変換を実行するモデルでアクセサーを使用します。次のようなもの:
public string State
    {
        get
        {
            return StateConverter.Abbreviate(_state);
        }
    }
  • このエンティティ モデルが使用されるたびに、ビジネス レイヤーで変換を実行します。

  • この値が表示されるたびに、プレゼンテーション層で変換を実行します

これを実際のモデルで (get アクセサーを介して) 行う単純さが気に入っていますが、これはビジネス ロジックのような匂いがします。他のオプションは、これを多くの場所で変換する必要があることを意味します (ロジックの複製、人物リストのトラバースなど)。

ありがとう。

4

1 に答える 1

0

これは単なる計算フィールドであるため、モデル内に配置しても問題ありません。さらに、 Abbreviate(...) メソッドは、モデルの外部のデータにも依存しません。そこに置くあなたの権利。

于 2016-06-17T14:42:58.873 に答える