首先从一个场景说起:

        我们常常有这样一个需求,比如说在列表窗体(Master)有很多按钮,如增加,修改,删除,保存,取消等,不同的情况下,按钮的状态可能会不一样,比如说,只有在编辑状态时,保存,取消按钮才可用等等. 

        然后双击列表,会弹出一个明细窗体(Detail),这个窗体也有如增加,修改,删除,保存,取消等按钮,且功能和刷新条件也与Master窗体的功能差不多,我们常把各自的业务逻辑写在各自的窗体,但这样不是显得太冗余了吗,其实,我们有一种比较好的方法来解决这个问题. 

        用过DELPHI的人应该都知道,有个TACTION类解决的就是这个问题,下面我用.NET代码来模拟TACTION的实现:

1. 先设计一个命令Cmd,主要定义操作的行为(如执行,刷新)及界面的绑定(此处假定绑定类为ToolStripMenuItem,如需绑定其它类,请自己扩展).其实现代码如下:

    }

 

 

 

2. 设计一个Act,Cmd进行封装


    }
    }


3.
效果演示

增加master,entry窗体,随便增加一些按钮,命好名就行了
Action设计模式的.Net实现
Action设计模式的.Net实现

增加master的Action动作及绑定代码



增加entry绑定代码

}


最终效果演示:

master中点击增加后的刷新效果:

Action设计模式的.Net实现

打开entry后,联动的刷新效果:
Action设计模式的.Net实现



由于本人比较忙且太过懒散,很久没有更新BLOG了,过年时如果有时间的话,我准备写一系列分布式框架设计的文章,望广大园友支持及指正!

相关文章:

  • 2022-01-13
  • 2022-12-23
  • 2021-10-28
  • 2022-12-23
  • 2021-04-30
  • 2021-07-06
猜你喜欢
  • 2021-06-18
  • 2021-08-05
  • 2021-08-24
  • 2022-12-23
  • 2022-12-23
  • 2022-01-29
相关资源
相似解决方案