zoukankan      html  css  js  c++  java
  • 我的设计模型之装饰者模式

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

  • 相关阅读:
    memcached stats 命令
    sql server 游标语法
    iis 备份
    在Win7下使用超级任务栏时,将文件夹锁定在超级任务栏打开的默认都是计算机
    微点破解90天
    win7 设置 开始菜单 程序 为经典模式
    设置 ASP.NET 存储当前应用程序的临时文件(生成的源、编译了的程序集等)的目录的物理路径。
    Java六大必须理解的问题
    Windows不能在本地计算机启动OracleDBConsoleorcl
    更改phpMyAdmin的密码
  • 原文地址:https://www.cnblogs.com/DrEdison/p/1256032.html
Copyright © 2011-2022 走看看