Mam klasę C #, która reprezentuje typ zawartości w systemie zarządzania treścią internetową.
Mamy pole, które pozwala edytorowi treści WWW wprowadzić szablon HTML do wyświetlania obiektu. Zasadniczo używa składni kierownicy do podstawiania wartości właściwości obiektu w ciągu HTML:
<h1>{{Title}}</h1><p>{{Message}}</p>
Czy z perspektywy projektowania klas powinienem udostępniać sformatowany ciąg HTML (z podstawieniem) jako właściwość lub metodę ?
Przykład jako właściwość:
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.
}
}
Przykład jako metoda:
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.
}
}
Nie jestem pewien z punktu widzenia projektu, czy to robi różnicę, czy są powody, dla których jedno podejście jest lepsze od drugiego?