看完了幾個原則後,我又開始看裝飾模式,將一些裝飾用的方法從主類中分離,並且將具體的裝飾步驟隔離開了,使得主類更加的簡便。
這樣做的最大好處就是,有效的把類的核心職責和裝飾功能區分開了,而且可以去除相關類中重複的裝飾邏輯。
#include #include using namespace std;
class people //主類
; people(string name):m_name(name){};
virtual void show() //輸出人名的虛函式
} }; class tshirts : public clothes //具體的裝飾類 t恤
}; class shoes : public clothes //具體的裝飾類 鞋子
};class jeans : public clothes //具體的裝飾類 牛仔褲
};class briefs : public clothes //具體的裝飾類 **
};class overcoat : public clothes //具體的裝飾類 大衣
};int main()
設計模式學習 裝飾
來自 設計模式 可復用物件導向軟體的基礎 目的動態地給乙個物件新增一些額外的職責。就增加功能來說,裝飾模式相比生成子類更為靈活。class visualcomponent class decorator public visualcomponent void decorator draw void ...
設計模式學習(三) 裝飾模式
在將模式之前,先對乙個oo設計原則掌握 對擴充套件開放和對修改關閉 無論如何,程式不能因為一些功能的修改就去該原來寫的,這樣只會越改越亂,因此,對修改遮蔽,和新增加的功能使用擴充套件的方式新增進去 裝飾者模式正可以做到這一點。這裡碰到的問題就是,軟體應對變化的能力,裝飾者模式提高了軟體的彈性,增加了...
設計模式學習總結 裝飾模式
抽象構件角色 component 給出乙個抽象介面,以規範準備接收附加責任的物件。具體構件角色 concrete component 定義乙個將要接收附加責任的類。裝飾角色 decorator 持有乙個構件 component 物件的引用,並定義乙個與抽象構件介面一致的介面。具體裝飾角色 concr...