日历

September 2020
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
282930  

Reply To: 关于合成的基础类问题

Home Forums 《冒号课堂》讨论区 关于合成的基础类问题 Reply To: 关于合成的基础类问题

#1277
hui
Keymaster

合成的基础类(underlying class)是指构成一个(合成)类的那些组件(component)类。比如:

class A { … }

class B { … }

class C

{

private A a = new A();

private B b = new B();

}

其中,类A和类B就是类C的基础类。它们不能是抽象类型是因为它们的对象创建必须由类C负责,否则就不是合成(composition)关系而是聚合(aggregation)关系。(合成与聚合的区别请参见本书第334页:合成是基于值语义的包含,聚合是基于引用语义的包含)

 请您评分1星(很差)2星(不行)3星(一般)4星(不错)5星(很棒)