設計模式 結構型模式 裝飾模式

2021-09-02 19:57:24 字數 1827 閱讀 1844

設計模式-結構型模式-裝飾模式

以成績單需要家長簽字為要求。

成績單類圖

// 抽象成績單

public abstract class schoolreport

下面書寫四年級成績單

public class fouthgradeschoolreport extends schoolreport

// 家長簽名

public void sign(string name)

}

使用裝飾器模式,對成績單進行裝飾。

直接增加乙個子類,重寫report方法。

// 在成績單下增加乙個子類

public class sugarfouthgradeschoolreport extends fouthgradeschoolreport

// 看完成績單,再匯報排名

private void reportsort()

// 對父類重寫,即report原先的成績單進行重寫

public void report()

}

最後場景類

public class father

}

如果要裝飾的太多,不可能無限的增加子類。

**如下

public abstract class decorator extends schoolreport

// 裝飾完成以後,需要有看到的需求

public void report()

// 裝飾完成後進行簽名

public void sign(string name)

}

核心在於通過建構函式,將要裝飾的物件傳入。再重寫方法。

public class highscoredecorator extends decorator 

// 對成績修改

private void reporthighscore()

// 重寫匯報方法,對進行進行匯報

public void report()

}

然後緊接著,對排名進行修飾

public class sortdecorator extends decorator

// 對排名裝飾

private void reportsort()

// 輸出成績

public void report()

}

最後書寫場景類

public class father

}

登入頁面資料上報,使用裝飾器,將登入層頁面,上傳到上報類中,進行裝飾上統計**,然後將統計資料上報。

動態改變函式引數,原先有乙個正常的函式,通過裝飾器,將正常的函式傳入,裝飾模式

應用ajax加token防止csrf攻擊

表單驗證,將表單驗證的內容,寫成乙個類,然後需要哪個驗證的選項,直接將表單驗證傳入即可,達到裝飾器的目的,同時也達到了外掛程式式的驗證。

核心在於裝飾二字,將要裝飾的物件,通過建構函式傳入,然後再賦值,達到裝飾的目的,然後再次呼叫即可。

設計模式 結構型模式 裝飾模式

在不改變現有物件結構的情況下,動態地給該物件增加一些職責 即增加其額外功能 的模式,它屬於物件結構性模式。優點 缺點主要缺點是 會增加很多子類,過度使用會增加程式的複雜性。結構主要角色 類圖 實現inte ce component class concretecomponent implements...

裝飾模式(結構型模式)

裝飾模式是一種動態的給類中新增新行為的設計模式,裝飾模式比生成子類更為靈活,可以給某個物件而不是整個類新增一些功能。值得注意的是裝飾模式的裝飾類也繼承介面類,同時他也有介面類的指標指向他需要裝飾的具體類。外表看著像is a的關係,實際也是has a的關係。實際應用中裝飾類可以同時裝飾幾個具體類。可以...

結構型模式 裝飾模式

裝飾模式是對類的組合進行的擴充。比如現在有個門,現在有一些額外功能,比如 新增鎖 貼春聯 門眼 門框全包 等功能,這些功能可以單獨存在,也可以兩兩組合等隨意組合。怎麼實現這樣的 門 呢.繼承 比如有 貼春聯 門眼 就新增乙個新類,這樣如果需要其他的功能就需要無窮多的子類。組合 加強版組合 裝飾模式 ...