.NET简谈静态事件链

开发 后端
本文通过例子的介绍,让读者更容易明白静态事件链。一起来看。

在我们日常开发过程中经常会遇到多个类实例之间的关联,不管是B/S还是C/S的项目,在对实例的使用是一样的;只不过C/S的项目比较好控制,不管是UI层的对象都能很好的控制,包括继承、重写等等;而在B/S里面可能不太方便。

由于B/S本身的特点,不能暴露内部太多的继承关系,以免不小心破坏类的封闭性;我这篇文章主要是讨论在多个类实例之间怎么进行动态关联,比如我们在开发Winform项目的时候,可能会碰到两个或多个窗口之间协同工作的情况;本人在这种情况下采用的是静态事件链的解决方案,多个实例之间不存在主次之分,有人肯定会觉得在一个类中定义事件,在调用的类中去实例化并订阅相关事件;这样解决不了多实例互操作的关系。

比如:我有五个窗口分布在主界面中,当我点击菜单栏中的一个刷新按钮时,想让这五个窗口同时刷新,这样一来就必须让这五个窗口实例都订阅来自一个地方的事件;我为什么用静态事件,就是为了方便多实例使用。

1、

静态事件链

 

2:

解决方案

 

3:

静态事件链定义 

 

图3中是静态事件链类的定义,定义一个静态事件好一个静态方法,注意本人在该类中也订阅了ClickEvent事件,就是怕没有任何实例订阅这个静态事件,然后又触发了这个事件,导致空地址封送失败,也就是空引用调用;

4:

 

图4是模拟窗口的一个实现,在构造函数中我们订阅了静态事件链中的一个ClickEvent事件;其余四个窗口都是一样的,我就不贴图片了;

5:

模拟窗口的实现

 

6:

五个窗口的实现

 

7:

运行窗口的效果

 

静态事件链就讲完了,通过一点触发多点的好方法,在我们开发过程中经常用到。

【编辑推荐】

  1. 程序员转型指南 当Java遇见了Objective-C
  2. Java中的四个核心技术思想
  3. Java新手入门的30个基本概念
  4. 常见的十四种Java开发工具的特点
  5. Java开发者需要注意的十条法则
责任编辑:于铁 来源: cnblogs.com
相关推荐

2011-07-28 09:50:58

设计模式

2010-09-02 15:34:25

DHCP协议

2009-11-12 10:37:23

Visual Stud

2010-05-06 10:14:31

负载均衡器

2010-09-08 09:32:22

SIP协议是什么

2010-07-16 17:54:18

CygWin Teln

2010-08-23 10:26:03

设置DHCP

2012-08-13 10:37:04

2010-09-26 14:12:17

DHCP服务器操作

2010-07-12 17:20:16

2010-04-28 16:26:45

Windows负载均衡

2013-08-22 17:17:39

.Net事件

2010-03-18 14:40:34

ubuntu DIY

2010-09-28 15:37:11

多VLAN DHCP服

2010-09-01 10:56:57

DHCP服务器

2010-09-09 17:49:27

TFTP路由器

2010-07-26 15:40:18

Telnet连接

2010-08-27 09:00:10

DHCP服务器迁移

2009-10-13 14:38:15

.NET重写URL

2011-06-16 14:38:18

JavaScript事件委托
点赞
收藏

51CTO技术栈公众号