**這篇文章只是為了加深我對裝飾者模式的理解,本人只是對**具體成了uml類圖,**是在菜鳥教程中看到的!!
用通俗的話講就是把乙個物件層層包裝,給他賦予多個不同的裝飾
乙個例子:
這個例子是在菜鳥教程上看到的,感覺很不錯
傳送門:裝飾者模式|菜鳥教程(下面的乙個筆記,author是叫周 霆)
類圖:(用word畫的,可能不太規範)
裝飾模式為已有類動態附加額外的功能就像lol、王者榮耀等類dota遊戲中,英雄公升級一樣。每次英雄公升級都會附加乙個額外技能點學習技能。具體的英雄就是concretecomponent,技能欄就是裝飾器decorator,每個技能就是concretedecorator;**:(是周霆寫的例子)
//component 英雄介面
public
inte***ce
hero
//concretecomponent 具體英雄盲僧
public
class
blindmonk
implements
hero
@override
public
void
learnskills()
}//decorator 技能欄
public
class
skills
implements
hero
@override
public
void
learnskills()
}//conretedecorator 技能:q
public
class
skill_q
extends
skills
@override
public
void
learnskills()
}//conretedecorator 技能:w
public
class
skill_w
extends
skills
@override
public
void
learnskills()
}//conretedecorator 技能:e
public
class
skill_e
extends
skills
@override
public
void
learnskills()
}//conretedecorator 技能:r
public
class
skill_r
extends
skills
@override
public
void
learnskills()
}//客戶端:召喚師
public
class
player
}
結果:
ps:再次感覺周霆這位大哥的例子,真的容易懂!
裝飾者模式
裝飾者模式 動態地將責任附加到物件上。若要擴張功能,裝飾者提供了比繼承更有彈性的替代方案。裝飾者可以在所委託被裝飾者的行為之前或之後,加上自己的行為,以達到特定的目的。裝飾者與被裝飾者物件具有相同的超型別。include include using namespace std class bever...
裝飾者模式
裝飾者模式,是在不改變原類檔案和使用繼承的情況下,動態地擴充套件乙個物件的功能。它是通過建立乙個包裝物件,也就是裝飾來包裹真實的物件。裝飾者模式中的角色 1 被裝飾者抽象component,是乙個介面或抽象類,就是定義最核心的物件,也是最原始的物件,這個類是需要裝飾類的基類。2 被裝飾者具體實現co...
裝飾者模式
裝飾者模式 裝飾者模式的好處是便於擴充套件,對乙個東西不管怎麼變,只需要找到相應的元件去改變它 1.如何組裝在一起 建立主題 packetbodycreator body new packetbodycreator 建立header packethtmlheadercreator html new ...