7.5 hide delegate (隐藏委托关系)
来源:互联网 发布:300271华宇软件 编辑:程序博客网 时间:2024/05/17 05:53
客户通过一个委托类来调用另一个对象。
在服务类上建立客户所需的所有函数,用以隐藏委托关系。
动机:
封装意味每个对象都应该尽可能少了解系统的其他部分。如此一来,一旦发生变化,需要了解这一变化的对象就会比较少。
如果某个客户先通过服务对象的字段得到另一个对象,然后调用后者的函数,那么客户就必须知晓这一层委托关系。万一委托关系发生变化,客户也得相应变化。可以在服务对象上放置一个简单的委托函数,将委托关系隐藏起来,从而去除这种依赖。
做法:
对于每一个委托关系中的函数,在服务对象端建立一个简单的委托函数。
调整客户,令它只调用服务对象提供的函数。
=》如果使用者和服务者不在同一个包,考虑修改委托函数的访问权限,让客户得以在包之外调用它。
旧代码
class Person{Department _department;public Department getDepartment(){ return _department;}public void setDepartment(Department arg){ _department = arg;}}class Department{private String _chargeCode;private Person _manager;public Department(Person manager){ _manager = manager;}public Person getManager(){ return _manager;}}
新代码
public Person getManager(){ return _department.getManager();}
- 7.5 hide delegate (隐藏委托关系)
- Hide Delegate(隐藏委托关系)
- Hide Delegate(隐藏“委托关系”)
- 在对象之间搬移特性---Hide Delegate(隐藏委托关系)
- 在对象之间搬移特性之五 :Hide Delegate(隐藏「委托关系」)
- 重载(overload)、覆盖(override)、隐藏(hide)关系
- 委托(Delegate)
- 委托(Delegate)
- delegate委托
- 委托(delegate)
- Delegate 委托
- delegate 委托
- 委托:delegate
- 委托 delegate
- 委托(delegate)
- 委托,delegate
- delegate-委托
- 委托 delegate
- 开发人员一定要加入收藏夹的网站(转自http://blog.csdn.net/songkexin/article/details/4828055)
- bash的诡异语法
- Java多线程-工具篇-BlockingQueue
- 链接中的小问题
- 一个很不错的查询重复字符的方法
- 7.5 hide delegate (隐藏委托关系)
- ubuntu忘记root密码后安装ssh服务
- Red Hat 5.5中JDK的卸载和安装
- 用户 'IIS APPPOOL\DefaultAppPool' 登录失败
- Sql server2005 优化查询速度50个方法小结
- Dev-C++ 5 beta 9 release(4.9.9.2)安装过程
- 小小感悟
- 解决:type="password" type="text"用户名和密码输入框大小不一样 本篇文章来源于 电脑知识网(www.diannaozs.com) 原文出处:http://www.dianna
- 什么是进程上下文,什么是中断上下文