消費者が利用できるデコレータのチェーンに状態を追加する方法を知りました。彼らはすべての印刷方法を実装し、チェーンが、それはすべて良いことだという伝播した場合デコレータパターンに状態を追加する
今abstract class AbstractPizza{
public abstract print(...);
}
class Pizza:AbstractPizza{
public int Size (get; set;)
public print(...);
}
abstract class AbstractPizzaDecorator{
public Pizza:AbstractPizza;
public abstract print();
}
class HotPizzaDecorator:AbstractPizzaDecorator{
public int Hotness (get; set;)
public print(...);
}
class CheesyPizzaDecorator:AbstractPizzaDecorator{
public string Cheese (get; set;)
public print(...);
}
void Main()
{
BigPizza = new Pizza();
BigPizza.Size = 36;
HotBigPizza = new HotPizzaDecorator();
HotBigPizza.Pizza = BigPizza;
HotBigPizza.Hotness = 3;
HotBigCheesyPizza = new CheesyPizzaDecorator();
HotBigCheesyPizza.Pizza = HotBigPizza;
HotBigCheesyPizza.Cheese = "Blue";
HotBigCheesyPizza.print();
HotBigCheesyPizza.size = 28; //ERRRRRR !!!!!!!!!!!!!!!!!!!!!!!
}
:この単純化したモデルを考えます。しかし、それは州のためにどのように機能するのですか? HotBigCheesyPizzaのsizeプロパティにアクセスできません。
私の欠点は何ですか?間違ったパターン?
ありがとうございます! 乾杯
から書き換えられて...あなたは一例を示してもらえますか? –