您的位置:首页 > 编程语言 > C#

c#中窗体之间的异步调用

2010-11-11 22:47 363 查看
如何实现窗体之间的异步调用,要求第一个窗体里添加数据在第二个窗体中即时显示
要看你是什么样的两个窗口,是一个程序里的两个窗口还是两个程序的两个窗口
如果使用一个程序的两个窗口,可以用委托,也可以使用方法调用,方法调用要简单些。
如果是两个程序的两个窗口,你得用多线程+套接字编程。或者用钩子函数。

虽然用到了 class 关键字,但它们不是类,只是一些数据表滴变体而已,形象一些也可称为数据傀儡,
只能任人摆布,结论 Model 层是一些残疾类滴集合,没有丝毫 OO 滴思想;

BLL 层,一些静态类或者一些提供静态方法(增删改查)滴类,这些类只有方法而无属性、字段,
同样它们也不是类,只是一些加工器而已,OO 思想更与 BLL 毫无关系!

下面来讲讲俺对三层滴理解,从上至下依次为,表示层、业务实体层、数据访问层!

表示层,用于展示、收集数据,与 业务实体层 交互;
业务实体层,暂时跳过;
数据访问层,访问数据源,填充业务实体!

关键就是业务实体,业务实体 = Model + BLL,属性加方法才是对象,因此将 Model 与 BLL 合并
就得到了真正滴业务实体,为了更好滴适应业务需求,业务实体之间可以相互组合,例如:A 班级下可以有
本班学员列表,即 classA.StudentList;业务实体还可以扩展自己滴成员方法,例如:A 班级下找出所有姓
赵滴同学,即 classA.FindAllByLastName("赵");班级类上还有静态方法,例如:新增 A 班级,
即 Class.Add(classA),删除 A 班级,即 Class.Remove(classA)等等!

业务实体主要定义了与本实体相关的属性和方法,至于多对象之间的复杂交互应添加一个新层——业务外观层,
而业务外观层多是一些静态类,为表示层提供一些功能!

复杂三层就变为:

表示层(WebForm or WinForm ...)
| |
| 业务外观层(随需应变)
| |
业务实体层(三层架构的核心)
|
数据访问层(SqlServer or Excel or XML ...)

至于实现,每个团队滴风格不同、架构不同代码自然不同,而理想滴三层架构应该就是俺上面这张图了!

如果不懂 OO,这张图离实现就有十万八千里,想学 OO Coding 就去看《重构》吧,看完这本书
就能实现理想滴三层架构了!

记得刚学三层结构的时候用到了这样一个生活中的例子:饭店
三层构架包括:数据访问层(DAL)、业务逻辑层(BLL)、表示层(UI,我们说的前台页面),还有一个重要的模型层(Models)是前面三层中传递数据的载体;
饭店的工作人员有:服务员、厨师、采购员
服务员接待顾客,顾客通过菜单点回锅肉,服务员将顾客点的菜单提交给厨师,厨师根据菜单所需,转告采购员提取原料,厨师将采购员提供的原料炒出回锅肉转交给服务员,服务员再将炒好的回锅肉交给顾客,顾客享用美味的回锅肉。
三层构架大概就是这种原理,服务员(UI层)负责前台工作,提交顾客(用户)的请求给厨师(BLL),厨师(BLL)通过筛选服务员提供的菜单(请求)是否合法,如果不合法,将返回给服务员,合法则执行炒菜(如果没有原料,向服务员传递没有原料的信息)工作,将炒好的菜交给服务员(UI),顾客(用户)就得到需要的的菜(结果)了
我理解的三层,就是以Model实体类作为介质来传递数据
UI层只负责数据的传递,以及接收结果
至于要判断采用什么方法,是BLL层的任务,BLL层选好方法后,通过DAL层与数据库打交道
DAL层只负责对数据库的访问和数据的回传

来源:nba直播
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息