說明:給乙個類增加額外的功能,適合使用,stream就是使用裝飾者模式,有了memorystream,filestream,networkstream等。
實現:
publicabstract
class
car
public
class
baoma : car
}//我要加功能,用裝飾者
public
abstract
class
decorator : car
public
override
void
run()}}
//開始加,加個後視攝像頭
public
class
camera : decorator
public
void
addcamera()
public
override
void
run()
}public
class
test
}
設計模式 9 裝飾者模式
動態地將責任附加到物件上,若要擴充套件功能,裝飾者比繼承更有彈性 裝飾者將被裝飾聚合到自己內部,雙方都繼承共同的抽象方法,往往是被裝飾者只需要完成自己的本質工作,裝飾者在整合的被裝飾者功能基礎之上新增自己的邏輯。下面以飲品店咖啡和咖啡配料組合例子作為案例說明 public abstract clas...
設計模式 9 裝飾模式
裝飾模式可以動態向乙個現有的物件新增新的功能,同時又不改變其結構。就增加功能來說,使用繼承的方式生成子類也可以達到目的,但隨著擴充套件功能的不斷增加,子類的數量會快速膨脹,而裝飾模式提供了一種更加靈活的方案。gof對裝飾模式的描述為 attach additional responsibilitie...
設計模式 裝飾者模式
public abstract class beverage public abstract double cost public abstract class condimentdecorator extends beverage public class darkroast extends be...