1. 程式人生 > >裝飾模式和繼承的區別

裝飾模式和繼承的區別

二級 特點 clas 多態 體系 擴展 ade 臃腫 抽象類

MyReader 專門用於讀取數據的抽象類
|--MyTextReader
|--MyBufferedTextReader
|--MyMp3Reader
|--MyBufferedMp3Reader
如果多個這樣的二級類,每個二級類下面又有3級類,會讓這個體系看起來很臃腫,這些3級類看起來又有共同的特點,那麽考慮用裝飾模式
class MyBufferedReader{
// MyBufferedReader(MyTextReader myTextReader){
//擴展型很差
// }
MyBufferedReader(MyReader myReader){
//這裏用到了參數多態
}
}
如果用了裝飾模式,上述體系變成如下模樣
MyReader 專門用於讀取數據的抽象類
|--MyTextReader
|--MyMp3Reader
|--MyBufferedReader

裝飾模式和繼承的區別