Ich habe gerade das Google Clean Code-Video auf YouTube (siehe link, erster Artikel) über das Entfernen von if
-Anweisungen aus Ihrem Code und die Verwendung von Polymorphie abgeschlossen.Wie würden Sie diese Bedingung für die Verwendung von Polymorphie umgestalten?
Nachdem ich das Video angeschaut habe, habe ich mir einen Code angeschaut, den ich geschrieben habe, bevor ich das Video angeschaut habe und einige Stellen bemerkt habe, an denen ich diese Methode verwenden konnte, hauptsächlich Orte, an denen die selbe Logik mehrfach implementiert wurde. Also ein Beispiel:
Ich habe einen Code wie diesen.
public int Number
{
get
{
string returnValue;
if (this.internalTableNumber == null)
returnValue = this.RunTableInfoCommand(internalTableName,
TableInfoEnum.TAB_INFO_NUM);
else
returnValue = this.RunTableInfoCommand(internalTableNumber.Value,
TableInfoEnum.TAB_INFO_NUM);
return Convert.ToInt32(returnValue);
}
}
Was RunTableInfoCommand tut, ist nicht wirklich wichtig, aber die Hauptsache ist, dass ich mit vielen Eigenschaften haben genau das gleiche if
statments das einzige, was die TableInfoEnum verändert ist.
Ich frage mich, ob jemand mir helfen könnte, dies zu refaktorieren, so dass es immer noch das Gleiche tut, aber ohne irgendwelche if
Aussagen?
Warum die Abstimmung unten? –
Weil du ursprünglich gesagt hast "nutze Polymorphismus", dann sagte "Oh nein, ich brauche keinen Polymorphismus" - und ich hatte schon eine ganze Menge von dem ausgegeben, was ich für Zeitverschwendung hielt, um eine Frage zu beantworten, die dir egal war.Nun, da "polymorphism" zurück ist, habe ich die down vote entfernt und meine Antwort gelöscht. – tvanfosson
Entschuldigung, ich wollte die Zeit nicht verschwenden, an einem dieser Tage bin ich immer noch interessiert zu sehen, wie Leute würden es aber tun. Wiederum sehr leid. –