zoukankan      html  css  js  c++  java
  • command模式

    运用<<解耦的思维方法>>
    对照Command设计模式
    耦合的例子1

    public class Application
     {
      public Application()
      {
       Document doc=new Document();
       doc.ShowText();//输出文本

       Graphic grh= new Graphic();
       grh.DrawGraphic();//画图形
      }
     }


     public class Document
     {
      public void ShowText()
      {
      }
     }

     public class Graphic
     {
      public void DrawGraphic()
      {
      }
     }
    解耦后过程例子

    public class Application1
     {
      System.Collections.ArrayList list;
      public Application1()
      {
       foreach(ICommand cmd in list)
       {
        cmd.ExecuteCommand();
       }
      }
     }
     public class Document
     {
      public void ShowText()
      {
      }
     }

     public class Graphic
     {
      public void DrawGraphic()
      {
      }
     }

    //保持原有程序不变
     //把对象的行为抽象出来ICommand
     //把Document.ShowText()行为和Graphic.DrawGraphi()分别作为一个命令从ICommand行为对象继承
     //把(对象A======对象B的行为)依赖关系转化为(对象A=====抽象行为)

    public interface ICommand
     {
      void ExecuteCommand();
      void ReDo();
      void UnDo();
     }

     public class DocumentCommand:ICommand
     {
      private Document doc;
      public void ExecuteCommand()
      {
       this.doc.ShowText();
      }

      public void ReDo()
      {
      }

      public void UnDo()
      {
      }
     }
     public class GraphicCommand:ICommand
     {
      private Graphic graphic;
      public void ExecuteCommand()
      {
       this.graphic.DrawGraphic();
      }
      
      public void ReDo()
      {
       
      }

      public void UnDo()
      {
       
      }
     }

  • 相关阅读:
    40_接口类型的使用
    39_方法值和方法表达式
    38_方法的重写
    37_匿名字段方法的继承
    36_方法集的使用
    文件方式实现完整的英文词频统计实例
    组合数据类型练习,英文词频统计实例上
    英文词频统计预备,组合数据类型练习
    凯撒密码、GDP格式化输出、99乘法表
    字符串基本操作‘’
  • 原文地址:https://www.cnblogs.com/kuailewangzi1212/p/1200570.html
Copyright © 2011-2022 走看看