裝飾模式動態地給乙個物件新增一些額外的職責。就增加功能來說,裝飾模式相比生成子類更為靈活。
裝飾模式注重功能的拓展,增加了類的組合,減少了類之間的繼承,而多個裝飾類進行排練組合,可以創造出不同行為的組合。
//穿衣服的人
class people
;class someone : public people
};//衣服
class clothe : public people
virtual
void showclothes()
private:
people *m_people;//裝飾物件
};class shirt : public clothe
void showclothes()
};class overcoat : public clothe
void showclothes()
};int main()
設計模式C 實現(11) 裝飾模式
裝飾者模式主要實現的功能是動態的給某乙個類新增一些額外的功能,它是乙個錦上添花者。想要擴充套件功能,裝飾者提供了有別於繼承的另外一種選擇。設計模式的原則是多用組合少用繼承。uml 圖 特點 1.裝飾者和被裝飾者擁有相同的超型別 可能是抽象類也可能是介面 2.可以用多個裝飾類來包裝乙個物件,裝飾類可以...
C 實現 設計模式 11 裝飾模式
參考書籍 每當會想起考試卷簽字這件事都會讓我背脊發涼 然而在四年級的期末考試 學校出了乙個損招 列印成績單 要讓家長簽字 然後才能上五年級 當時那個恐懼 有那麼一瞬間覺得念書就到此為止了 這份成績單可以使用類來表示 如下 抽象成績單 class schoolreport 四年級成績單 class f...
設計模式11 裝飾器
裝飾器模式 decorator pattern 允許向乙個現有的物件新增新的功能,同時又不改變其結構。這種型別的設計模式屬於結構型模式,它是作為現有的類的乙個包裝。這種模式建立了乙個裝飾類,用來包裝原有的類,並在保持類方法簽名完整性的前提下,提供了額外的功能。意圖 動態地給乙個物件新增一些額外的職責...