委托是一种重要的编程方式。与继承相对,是可复用编程的重要方法。
委托指的是在A类中以各种方式利用B类,完成类的功能。
委托的类型:
1.A use B
B类对象在A类中出现,但是是以局部变量或是方法参数的形式出现的。A类中并没有B类的对象作为域。
一般称这种delegation为临时性的delegation。
2.A has B
B类对象在A类中出现,B类的对象是A类的域之一。B类对象通过A类对象的constructor方法或其它方法从外部输入A类对象。
A has B有两种情况。1)Association。A类对象和B类对象之间并没有从属关系。
2)Aggregation。A类对象由B类聚合而成,但是B类可以脱离A类单独存在。
一般称这种delegation为永久性的delegation。
3.A ispartof B
B类对象在A类中出现,B类的对象是A类的域之一。B类对象在A类对象内创建。
B类对象不能脱离A类对象独立存在。
一般称这种delegation为永久性的delegation。