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 ?