ich eine Kundenhierarchie wie so haben:Design-Problem: Vermeidung Kind Objekttyp Hier erhalten Sie Informationen, wenn Aussagen in Präsentationsschicht
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; }
}
Wenn ich einen Kunden abrufen, würde ich im Web zeigen, wie bilden die Eigenschaften bearbeiten/ändern. Derzeit verwende ich if-Anweisungen, um den Kind-Kundentyp zu finden und die speziellen Eigenschaften anzuzeigen. Gibt es ein Entwurfsmuster (Besucher?) Oder einen besseren Weg, um die "if" -Anweisungen in der Präsentationsebene zu vermeiden? Wie machst du das?
Weitere Informationen: Dies ist eine asp.net-Website mit nHibernate-Backend. Jeder Kundentyp hat sein eigenes Benutzersteuerelement auf der Seite, die ich automatisch laden möchte, wenn der Kundentyp angegeben wird.
ich Reflexion zu vermeiden versuchen. Wie würde ich die virtuelle Methode verwenden, um diese Eigenschaften festzulegen? – Mank
@Mank, Reflexion wäre die einfache Antwort. ; P Ich glaube, Sie können sie möglicherweise mit oder etwas einstellen. Nicht sicher. Vielleicht ein einkapselndes Objekt? Ich kenne C# nicht genug, um dir dort zu helfen. –
strager