封装使用的一个小例子

来源:互联网 发布:nvidia游戏优化怎么样 编辑:程序博客网 时间:2024/06/05 20:50
范例(Examples) 本例从两个classes开始,代表「人」的Person和代表「部门」的Department:                                        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;   } ... 如果客户希望知道某人的经理是谁,他必须先取得Department对象:  manager = john.getDepartment().getManager(); 这样的编码就是对客户揭露了Department的工作原理,于是客户知道:Department用以追踪「经理」这条信息。如果对客户隐藏Department,可以减少耦合(coupling)。 为了这一目的,我在Person中建立一个简单的委托函数:    public Person getManager() {       return _department.getManager();   } 现在,我得修改Person的所有客户,让它们改用新函数:  manager = john.getManager(); 只要完成了对Department所有函数的委托关系,并相应修改了Person的所有客 户,我就可以移除Person中的访问函数getDepartment()了。

原创粉丝点击