我的设计模型之装饰者模式

今天听了webcast的C#设计模型 感觉更好了,因为之前看过《小菜与大鸟不得不说的事》今天温习一下感觉装饰者模式真的很爽啊好了 废话少说 放代码

Code

 

此为抽象类,是抽象的哦。

    class  T50:Tank
    {
        
public   override   void  Shot()
        {
            Console.WriteLine(
" 我是T50坦克 " );
        }

        
public   override   void  Run()
        {
            Console.WriteLine(
" 我可走正常的路 " );
        }
    }

 

一个实体类继承自抽象

下面轮到我们的主角装饰者类上场了

     class  JiaNongPo:Tank
    
{
        
private Tank tank;
        
public JiaNongPo(Tank tank)
        
{
            
this.tank = tank;
        }

        
public override void Shot()
        
{
            Console.WriteLine(
"装备加农炮");
        }

        
public override void Run()
        
{
            tank.Run();
        }

    }

    
class  Papo : Tank
    
{
        
private Tank tank;
        
public Papo(Tank tank)
        
{
            
this.tank = tank;
        }

        
public override void Run()
        
{
            Console.WriteLine(
"装备爬坡器!");
        }

        
public override void Shot()
        
{
            tank.Shot();
        }


    }

这是我们的装饰者类,之前用过另外一个抽象装饰者类来继承Tank类 后来发现状态保存比较麻烦,所以不用了 直接用

具体的装饰者来继承但是一个缺点就是当Tank类中的方法较多的时候会要求全部重载 Tank类的方法比较麻烦啊,不知各位有什么好的解决办法。好了天不早了 我要休息了啊 努力中....

你可能感兴趣的:(装饰者模式)