次のような顧客階層があります。
abstract class Customer {
public virtual string Name { get; set; }
}
class HighValueCustomer : Customer {
public virtual int MaxSpending { get; set; }
}
class SpecialCustomer : Customer {
public virtual string Award { get; set; }
}
顧客を取得するときに、編集/変更するプロパティを Web フォームに表示したいと考えています。現在、if ステートメントを使用して子顧客タイプを見つけ、特殊なプロパティを表示しています。プレゼンテーション層で「if」ステートメントを回避できるように、デザインパターン(訪問者?)またはより良い方法はありますか? どのようにしますか?
詳細情報: これは、nHibernate バックエンドを備えた asp.net Web サイトです。各顧客タイプには、ページ上に独自のユーザー コントロールがあり、顧客タイプに応じて自動的にロードしたいと考えています。