1

私はこのようなアドレスを返しToString()方法を持っている自分のドメイン内の単純なアドレスオブジェクトがあります。のHTML整形

123テストアヴェ
APPT 1A
スポケーン、WA 99201

を私たちはいくつかの異なる機会にウェブページにこれを表示していますので、どこかでHtmlフォーマットでアドレスを表示する機能を追加する感覚がありますが、もし私がドメインクラスにToStringHtmlFormat()を追加すると面白いにおいが始まります。

私はおそらく少し気味悪いですが、どのように/どのように私のドメインクラスを維持するためにこれを達成することをお勧めしますか?あなたの提案のため

おかげで...

答えて

6

あなたはへの「訪問」のドメインクラスが可能であるHTMLWriterを持っているとものをプリントアウトすることができます。ドメインクラスは、訪問者(訪問者パターン)を受け入れるためにAcceptメソッドが必要です。

柔軟性とメンテナンス性の面では、あなたのHTMLとあなたがプリントアウトしたいプロパティへのアクセスを含むいくつかのテンプレートエンジンに行きます。しばしば複雑なサイトでは、ViewModelと呼ばれるものも導入されます.ViewModelは、UI HTMLエンジンによって簡単にアクセス可能な方法でデータを表示する準備を整えます。

+1

+1私はビジターパターンでは本当に友人ではありませんでしたが、ドメインクラスの外でフォーマットを処理することに同意します。フォーマットはプレゼンテーション、ドメインクラスはそうではありません。 –

+0

お手数ですが助けてください! – bytebender

1

あなたが拡張メソッドを追加できます。

public static class AddressHelpers 
{ 
    public static string ToStringHtmlFormat (this Address address) 
    { 
     string result = address.Address1; 
     // snip.. 
     return result; 
    } 
} 

を、今、あなたは拡張メソッドは、プロジェクトに含まれますどこ際&制御することができます(例:Webアプリケーションのみで)。