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


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

  • 相关阅读:
    gdb php
    redis启动过程
    php protobuf 安装使用2
    php protobuf 安装使用
    服务治理
    base64编码
    redis-quicklist
    redis-ziplist
    redis-zset数据结构探索
    su root 出现 su: Authentication failure
  • 原文地址:https://www.cnblogs.com/DrEdison/p/1256032.html
Copyright © 2020-2023  润新知