デザインパターン - デコレータ

相続のコアDecoratorパターンは、抽象クラス、継承と組成物または組み合わせです!

これは、ネストされたレイヤーを使用しています:

BaseCharacter文字= 新しいメイジ(); 
文字 = 新しい BaseDecorator(文字); // 
文字 = 新しい DecoratorHelmet(文字); // 
文字 = 新しい DecoratorShoulder(文字); // 
文字 = 新しいDecoratorBreastplate(caracter)。
文字 = 新しいDecoratorCuish(文字); 
文字 = 新しい DecoratorGlove(文字);

あなたはそれを書くためにチェーンできますか?

 パブリック クラスBaseDecorator:BaseCharacter 
    { 
        プライベート BaseCharacter _BaseCharacter = nullを公共BaseDecorator(BaseCharacter文字)
        { 
            この ._BaseCharacter = キャラクタ; 
        } 

        パブリック オーバーライド ボイドショー()
        { 
            この._BaseCharacter.Show()。
        } 
        公共BaseDecorator Decorat <T>()T:BaseDecorator 
        { 
            リターン(T)Activator.CreateInstance(typeof演算(T)、新しいオブジェクト[] {この})。
        } 
    }

これは、最大連鎖させることができます!

BaseCharacter文字= 新しいメイジ(); 

 文字 = 新しい。BaseDecorator(文字).Decorat <DecoratorHelmet>()Decorat <DecoratorCuish>(); // 
 character.Show();

 

おすすめ

転載: www.cnblogs.com/qgbo/p/11516662.html