A volte uso alcune proprietà indirette per impostare o ottenere altre proprietà secondarie,
Dò un esempio
class Page
{
public string MainText
{ set { MainParagraph.Text = value; } get { return MainParagraph.Text; }}
public TextBlock MainParagraph {set; get;}
public TextBlock FootNotes {set; get;}
}
class TextBlock
{
public String Text {set; get;}
public bool RightToLeft {set; get;}
}
Senza la proprietà MainText
di Page
Devo usare myPage.MainParagraph.Text = something
e ora uso myPage.MainText = something
, tuttavia si può ancora usare la prima alternativa. (Dovrei impedirlo?)
Si noti che Text
non è una proprietà reale di Page
e in questo modo potrebbe rappresentare alcune proprietà secondarie ma non tutte. C'è qualche compromesso?
Ad esempio per la proprietà RightToLeft
preferisco myPage.FootNote.RightToLeft = true
perché è un attributo specifico di ogni TextBlock
ma MainText
potrebbe ancora essere conosciuto come testo principale di ogni pagina.
È meglio rendere FootNotes
pubblico, ma MainParagraph
privato? Quindi devo definire una proprietà in Page
per ogni proprietà di MainParagraph
?