今天像高技术工程师深入学习了委托.感觉很实用的在项目中.可是我们日常项目开发中根本没有使用在委托.该工程师也说项目中基本用不到.这是为什么.我想把所有类型一致的方法都做成委托.这样有意义嘛.

解决方案 »

  1.   

    当然没有意义。这其实跟“选择”有关。在好的设计中,特别是意义重大的设计中,对象之间往往只有单向的依赖关系,而避免出现直接或者间接的循环依赖关系。这样所有的代码都有“客户-服务”关系。比如说学生和老师,不管你设计为学生依赖于老师,还是老师依赖于学生,都不要搞反向依赖的纠结,而反向的对象间通讯要使用委托或者事件驱动方式。这样做的记过就是你轻松地解耦了类型之间的依赖关系。举个例子,你可以轻松地把TextBox控件拖到Panel布局里边,之后TextBox控件就是一种服务(有什么事情都抛出预先定义的事件而不是纠缠于将来才开发的宿主控件),而Panel就是它的宿主。如果设计人员想当然地在TextBox的代码中硬性地把自己的Parent作为自己的一个属性,那么这个设计人员用不了多久也就下岗了,因为它所在地公司也就做不出灵活多变的录入界面了。