設計模式 裝飾模式

2021-07-14 11:33:08 字數 2151 閱讀 5405

今天來學習一下裝飾模式。裝飾模式的主要作用就是用來擴充套件乙個類的功能,在不改變原來的情況下給它加上新的附屬。

廢話呢也懶得說了,因為太懶了。

場景設定:上海老婆成本計算及描述,成本包括,車、房子、穩定的工作、錢。

**:public abstract inte***ce payforwifeinte***ce

//有個房子吧,上海郊區的500w

public class roomcost implements payforwifeinte***ce

@override

public string costdetail() }

//車子一台20w

public class carcost implements payforwifeinte***ce

@override

public string costdetail() }

//穩定的工作,估價500w

public class goodjob implements payforwifeinte***ce

@override

public string costdetail() }

//得有錢啊,沒錢誰嫁你,1000w資產

public class moneycost implements payforwifeinte***ce

@override

public string costdetail() }

想要多少個附加的條件都可以的,要多少就寫多少個類去實現介面。

再寫乙個裝飾介面:

//裝飾介面

public inte***ce zhangshiinte***ce extends payforwifeinte***ce

//房子裝飾實現裝飾介面

public class roomzs implements zhangshiinte***ce

@override

public double costsum()

@override

public string costdetail() }

//車子裝飾

public class carzs implements zhangshiinte***ce

@override

public double costsum()

@override

public string costdetail() }

//工作裝飾

public class goodjobzs implements zhangshiinte***ce

@override

public double costsum()

@override

public string costdetail() }

//錢裝飾

public class moneyzs implements zhangshiinte***ce

@override

public double costsum()

@override

public string costdetail() }

寫到這裡基本上裝飾模式就算完成了,總結寫法,

1寫乙個介面,介面裡寫上能用到的方法,

2寫要附加的裝飾,繼承介面

3寫裝飾介面實現1的介面

4,所有裝飾類實現3的介面,並在該類裡構造方法,傳1的介面

5,呼叫

//結婚成本,乙個好工作,一台車子,一套房子,還有老婆本(錢 )

payforwifeinte***ce payforwifeinte***ce = new goodjobzs(new carzs(new roomzs(new moneycost())));

double costsum = payforwifeinte***ce.costsum();

system.out.println("上海結婚花費:"+costsum+"w");

string costdetail = payforwifeinte***ce.costdetail();

system.out.println(costdetail);

輸出:上海結婚花費:3520.0w

現金資產1000萬+房子一套+一台車子+穩定的工作

看到這還想結婚嗎,如果不想請支援一下吧。

設計模式 裝飾模式

裝飾模式,動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更為靈活。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...

設計模式 裝飾模式

剛看了看設計模式,真是費了好多的腦細胞。想著想著就到了食堂。o o哈!正是長身體的時候 大神勿噴 一定要多吃點。於是我打了乙份公尺飯,然後又端著盛公尺飯的盤子買了乙份菜 看著還不是很夠,就又端著這個盤子買了一條最愛吃的魚。裝飾模式!五一要來了。回家轉轉,沒有小外甥的玩具怎麼行。於是我去超市,推著購物...

設計模式 裝飾模式

複習設計模式 裝飾模式 裝飾模式 在不修改已經存在的類的情況下,動態的新增新的功能,實現即插即用,開放關閉原則 public inte ce man public class batman implements man override public void killmonster public ...