設計模式之裝飾者模式12

2021-07-23 04:31:31 字數 1382 閱讀 6837

有一次考試,小明考了60分,然後學校出了乙個成績單,要家長簽字。60分,王老漢肯定不簽字。這時,需要加兩個裝飾。

1:最高分是70分,我考了60分。

2:我排名從40到30名。

學校給的報告單

public

abstract

class schoolreport

四年級真實的成績單

public

class

fourgradereport

extends

schoolreport

@override

public

void

sign(string name)

}

抽象出來的裝飾類

public

abstract

class

decorator

extends

schoolreport

@override

public

void

report()

@override

public

void

sign(string name)

}

高分的修飾類

public

class

highscorereport

extends

decorator

public

void

reporthigh()

@override

public

void

report()

}

排名的修飾類

public

class

sortscorereport

extends

decorator

public

void

reportsort()

@override

public

void

report()

}

給王老漢看報告,並要求簽字

public

class client

}

執行結果

我考了60分。

最高分是70

排名從40到30名

家長簽字:王老漢

設計模式之 裝飾者模式

一 裝飾者模式 裝飾者模式又稱為包裝模式。動態地給乙個物件增加新的職責。若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。裝飾者模式顧名思義就是對乙個物件進行裝飾,具體怎樣裝飾呢?那就是給這個物件不斷的增加職責方法。給乙個物件增加方法不簡單啊,用繼承或者直接在物件的類中增加方法。如果我們要對自...

設計模式之裝飾者模式

此模式動態將職責附加到物件上,若要擴充套件功能,裝飾者提供了比繼承更具彈性的代替方案,以一圖一概括。要點1 裝飾者和被裝飾物件有相同的超型別。2 可以用乙個或多個裝飾者包裝乙個物件。3 裝飾者可以在所委託被裝飾者的行為之前或之後,加上自己的行為,以達到特定的目的。4 物件可以在任何時候被裝飾,所以可...

設計模式之裝飾者模式

public abstract class beverage 返回當前飲品的 public abstract double cost 為了讓condiment decorator 調料裝飾者 能夠取代beverage,所以將它擴充套件至beverage類 public abstract class ...