J'ai une classe C # qui représente un type de contenu dans un système de gestion de contenu Web.
Nous avons un champ qui permet à un éditeur de contenu Web d'entrer un modèle HTML pour la façon dont l'objet est affiché. Il utilise essentiellement la syntaxe du guidon pour remplacer les valeurs de propriété d'objet dans la chaîne HTML:
<h1>{{Title}}</h1><p>{{Message}}</p>
Du point de vue de la conception de classe, dois-je exposer la chaîne HTML formatée (avec substitution) en tant que propriété ou méthode ?
Exemple en tant que propriété:
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.
}
}
Exemple comme méthode:
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.
}
}
Je ne suis pas sûr du point de vue de la conception que cela fasse une différence ou y a-t-il des raisons pour lesquelles une approche est meilleure que l'autre?