裝飾模式指的是在不必改變原類檔案和使用繼承的情況下,動態地擴充套件乙個物件的功能。它是通過建立乙個包裝物件,也就是裝飾來包裹真實的物件。
裝飾模式是為已有功能動態地新增更多功能的一種方式。
person
public
class person
private string name;
public
person(string name)
public
void
show()
}
finery
public
class
finery
extends
person
@override
public
void show()
}}class
tshirt
extends
finery
}class
skirt
extends
finery
}class
shoes
extends
finery
}
main
package decorator;
public
class main
}
結果鞋子 裙子 t恤 jy
此方法其實最大的的好處就是有效的把類的核心職責和裝飾功能區分開來,而且可以去除相關的重複的裝飾邏輯。當你需要某一步的時候再進行裝飾,然後處理。
可以通過單步跟蹤看出來他的運**況
裝飾者模式 穿衣服例項
package com.decorator 這是個componet抽象類 public abstract class personpackage com.decorator 這是乙個concretecomponet的物件,是component類的子類 public class male extend...
研究團隊探索如何讓AI學會自己穿衣服
在siggraph 2018 learning to dress synthesizing human dressing motion via deep reinforcement learning 中,喬治亞理工學院和谷歌腦研究團隊描述了他們如何教導ai穿衣服。機器學習工具自動發現強大的穿衣技巧,...
設計模式 裝飾模式
裝飾模式,動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更為靈活。m 超級瑪麗 普通繼承模式實現 a 發鏢 能組合出七種功能 m1 a m4 a b b 變身 m2 b m5 a c c 無敵 m3 c m6 b c m7 a b m m1 a b 組合方法 new m2 m...