Ich habe eine C # -Klasse, die einen Inhaltstyp in einem Webinhaltsverwaltungssystem darstellt.
Wir haben ein Feld, in das ein Webinhaltseditor eine HTML-Vorlage für die Darstellung des Objekts eingeben kann. Grundsätzlich wird die Handlebars-Syntax zum Ersetzen von Objekteigenschaftswerten in die HTML-Zeichenfolge verwendet:
<h1>{{Title}}</h1><p>{{Message}}</p>
Soll ich aus Sicht des Klassendesigns die formatierte HTML-Zeichenfolge (mit Ersetzung) als Eigenschaft oder Methode verfügbar machen ?
Beispiel als Eigenschaft:
public class Example
{
private string _template;
public string Title { get; set; }
public string Message { get; set; }
public string Html
{
get
{
return this.ToHtml();
}
protected set { }
}
public Example(Content content)
{
this.Title = content.GetValue("title") as string;
this.Message = content.GetValue("message") as string;
_template = content.GetValue("template") as string;
}
private string ToHtml()
{
// Perform substitution and return formatted string.
}
}
Beispiel als Methode:
public class Example
{
private string _template;
public string Title { get; set; }
public string Message { get; set; }
public Example(Content content)
{
this.Title = content.GetValue("title") as string;
this.Message = content.GetValue("message") as string;
_template = content.GetValue("template") as string;
}
public string ToHtml()
{
// Perform substitution and return formatted string.
}
}
Ich bin mir aus gestalterischer Sicht nicht sicher, ob es einen Unterschied macht oder gibt es Gründe, warum ein Ansatz besser ist als der andere?