可以這樣說(shuō),,委托和承繼都是擴(kuò)展功能的方法,。
在很多時(shí)候類的設(shè)計(jì)者要去考慮在擴(kuò)展類功能時(shí)是采用委托的方式還是采用承繼的方式。 那么就得依照類的設(shè)計(jì)理念來(lái)判斷,。 即類的內(nèi)聚性,,即其單一功能性。 如果按照領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的觀點(diǎn),,實(shí)體的東西可以用“繼承”來(lái)擴(kuò)展,,而服務(wù)的東西一般用“委托”。 如果沒(méi)有委托,,那么最后設(shè)計(jì)出來(lái)的就可能是所謂的“上帝類”,。 解釋:紅色字體所表示的意思是指利用委托可以在不用繼承父類的情況下,去重寫(xiě)父類中的方法,,或是重寫(xiě)Sealed類里的方法的時(shí)候,,這樣做的好處在于別人想用我這個(gè)類實(shí)現(xiàn)一些操作,,但是我又不想讓他看我這個(gè)父類中其它的東西(比如一些其它的抽象方法或是被指定Protected、Public的一些屬性或方法),,只想讓他做我指定的事情的時(shí)候,,用委托可以很好的解決這個(gè)問(wèn)題。
而如果這時(shí)候用繼承的話,,那么別人可以調(diào)用我Protected,、Public的方法或?qū)傩裕艺J(rèn)為這就是最大的區(qū)別
|
|