• 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()
      {
       
      }
     }

  • 相关阅读:
    第二百零一天 how can I坚持
    第一百九十七-第二百天 how can I 坚持
    第一百九十六天 how can I 坚持
    第一百九十五天 how can I 坚持
    第一百九十四天 how can I坚持
    第一百九十三天 how can I 坚持
    第一百九十二天 how can I 坚持
    第一百九十一天 how can I 坚持
    杭电2085--核反应堆(打表)
    杭电1799--循环多少次
  • 原文地址:https://www.cnblogs.com/kuailewangzi1212/p/1200570.html
Copyright © 2020-2023  润新知