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

今天听了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类的方法比较麻烦啊,不知各位有什么好的解决办法。好了天不早了 我要休息了啊 努力中....

原文地址:https://www.cnblogs.com/DrEdison/p/1256032.html