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

  • 相关阅读:
    struts2--OGNL
    struts2--通配符映射
    struts2--action请求与Action类
    mabatis--查询缓存
    mabatis--动态sql
    JS之正则表达式
    CSS样式表之background背景
    CSS样式表之常用文本属性
    CSS样式之选择器
    CSS样式之连接方式
  • 原文地址:https://www.cnblogs.com/DrEdison/p/1256032.html
Copyright © 2011-2022 走看看