MyReader//專門用于讀取數(shù)據(jù)的類刑枝。
|--MyTextReader
|--MyBufferTextReader
|--MyMediaReader
|--MyBufferMediaReader
|--MyDataReader
|--MyBufferDataReader
class MyBufferReader
{
MyBufferReader(MyTextReader text)
{}
MyBufferReader(MyMediaReader media)
{}
}
上面這個(gè)類擴(kuò)展性很差。
找到其參數(shù)的共同類型迅腔,通過(guò)多態(tài)的形式装畅,可以提高擴(kuò)展性。
class MyBufferReader extends MyReader
{
private MyReader r;
MyBufferReader(MyReader r)
{}
}
MyReader//專門用于讀取數(shù)據(jù)的類沧烈。
|--MyTextReader
|--MyMediaReader
|--MyDataReader
|--MyBufferReader
裝飾模式比繼承要靈活掠兄,避免了繼承體系臃腫。
而且降低了類與類之間的關(guān)系。
裝飾類因?yàn)樵鰪?qiáng)已有對(duì)象蚂夕,具備的功能和已有的是相同的迅诬,只不過(guò)提供了更強(qiáng)功能。
所以裝飾類和被裝飾類通常都是屬于一個(gè)體系中的婿牍。