软件设计笔记(九)- 面向对象程序设计 - 7

2.1.5 对象间的协作与信息交换

对象协作的本质就是对象间的信息交换的问题,体现为对象之间的相互访问

相互存取字段/属性
相互调用方法

// 1 在统一对象内部信息交换
// 2 主1->从1,对象信息传送
// 通过从的引用,调用从的公有属性、公有方法
// 3 从1->主1,对象信息传送
// 3.1 主通过阻塞的办法(比如,模态对话框)获取从结束的消息,然后利用从的引用进行查询
// 3.2 对象注入(主窗体把this传入从窗体,利用interface父类/主窗体类引用访问主窗体重写的方法即回调)
// 4 主1->从N,广播
// 4.1 使用对象集合,遍历、分别调用(最简单,主->从的扩展)
// 4.2 委托/事件(c#, 调用一次执行多个方法):在1端定义委托变量,每实例化一个从,就把从的方法挂到这个委托变量上。最终,只需要调用一次委托变量,就可以执行所有挂接的从窗体的方法,这相当于主窗体回调从窗体。
// 5 从N->主1,主监控多从
// 5.1 使用回调
// 5.2 使用委托/事件,每个从定义一个委托,主窗体把方法挂上去
// 5.3 使用全局字段和方法,不推荐使用,因为多线程会带来性能损失
// 6 N-N, N^2,要保证可扩展性
// 6.1 改多对多的关联为1对多的关联,构建一个消息中心。(个人觉得可以通过接口来实现)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值