У меня есть класс C #, который представляет тип контента в системе управления веб-контентом.
У нас есть поле, которое позволяет редактору веб-материалов вводить HTML-шаблон для отображения объекта. Он в основном использует синтаксис handlebars для подстановки значений свойств объекта в строку HTML:
<h1>{{Title}}</h1><p>{{Message}}</p>
С точки зрения дизайна класса, я должен представить форматированную строку HTML (с подстановкой) как свойство или метод ?
Пример как свойство:
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.
}
}
Пример как метод:
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.
}
}
Я не уверен с точки зрения дизайна, имеет ли это значение или есть причины, почему один подход лучше другого?