Saya memiliki kelas C # yang mewakili jenis konten dalam sistem manajemen konten web.
Kami memiliki bidang yang memungkinkan editor konten web untuk memasukkan template HTML untuk bagaimana objek ditampilkan. Ini pada dasarnya menggunakan sintaks setang untuk menggantikan nilai properti objek ke dalam string HTML:
<h1>{{Title}}</h1><p>{{Message}}</p>
Dari perspektif desain kelas, haruskah saya mengekspos string HTML yang diformat (dengan substitusi) sebagai properti atau metode ?
Contoh sebagai properti:
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.
}
}
Contoh sebagai metode:
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.
}
}
Saya tidak yakin dari sudut pandang desain apakah ada bedanya atau ada alasan mengapa satu pendekatan lebih baik dari yang lain?