設計模式 decorator模式

2021-06-20 08:04:00 字數 1550 閱讀 2168

裝飾者模式體現了 敏捷開發思想中的 對類要 開放擴充套件,關閉修改.

例子:乙個person主類

若干裝飾品類: 紅衣服,藍衣服,藍鞋子,紅鞋子    

測試: new乙個person  給他穿上紅衣服藍鞋子

code:

person介面:

public inte***ce iperson
person類:

package com.husw.design.decorator;

public class person implements iperson

public string decorate()

public string getname()

public void setname(string name)

}

裝飾品:

紅衣服:

package com.husw.design.decorator;

public class redclothesperson implements iperson

public string decorate()

public iperson getp()

public void setp(iperson p)

}

package com.husw.design.decorator;

public class blueclothesperson implements iperson

public string decorate()

public iperson getp()

public void setp(iperson p)

}

藍鞋子:

package com.husw.design.decorator;

public class blueshoesperson implements iperson

public string decorate()

public iperson getp()

public void setp(iperson p)

}

測試**:

iperson p = new person("lilei");

system.out.println(p.decorate());//赤身

p = new redclothesperson(p);

system.out.println(p.decorate());//穿上紅衣

p = new blueshoesperson(p);

system.out.println(p.decorate());//穿上藍鞋 }}

執行結果:

lilei

lilei,red clothes

lilei,red clothes,blue shoes

例子原始碼svn:

設計模式 decorator模式

兩點 目的 在不改變被裝飾類功能的前提下增加新功能 特點 繼承是子類和父類強耦合,橋接是低耦合 例子 class print 抽象介面 virtual int getcolumns virtual int getrows virtual string getrowcontent int row el...

Decorator設計模式

雖然設計模式分得太細會有過度的趨勢,decorator某種程度上也是一種facade模式。但是實現起來還是比較漂亮的。而後面那個人的class arlist list,ilist的方法就不是decorator。它沒有乙個內部的list。這樣 however,now all of list s met...

設計模式 Decorator裝飾模式

decorator裝飾模式是一種結構型模式,它主要是解決 過度地使用了繼承來擴充套件物件的功能 由於繼承為型別引入的靜態特質,使得這種擴充套件方式缺乏靈活性 並且隨著子類的增多 擴充套件功能的增多 各種子類的組合 擴充套件功能的組合 會導致更多子類的膨脹 多繼承 繼承為型別引入的靜態特質的意思是說以...