Ho una classe C # che rappresenta un tipo di contenuto in un sistema di gestione dei contenuti web.
Abbiamo un campo che consente a un editor di contenuto Web di inserire un modello HTML per la modalità di visualizzazione dell'oggetto. Fondamentalmente utilizza la sintassi del manubrio per sostituire i valori delle proprietà dell'oggetto nella stringa HTML:
<h1>{{Title}}</h1><p>{{Message}}</p>
Da una prospettiva di progettazione di classe, dovrei esporre la stringa HTML formattata (con sostituzione) come una proprietà o metodo ?
Esempio come proprietà:
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.
}
}
Esempio come metodo:
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.
}
}
Non sono sicuro dal punto di vista del design se fa la differenza o ci sono ragioni per cui un approccio è migliore dell'altro?