composition(复合)

composition(复合)

composition(复合)是在一个类型的对象包含另一个类型的对象时,类型之间的关系。
例如:
class  Address   } //  where someone lives

class  PhoneNumber   } ;

class  Person  {
 
public:
 

 
private:
  std::string name; 
// composed object
  Address address; // ditto
  PhoneNumber voiceNumber; // ditto
  PhoneNumber faxNumber; // ditto
}
;
composition(复合)有两个含意。composition(复合)既意味着 "has-a"(有一个),又意味着 "is-implemented-in-terms-of"(是根据……实现的)。这是因为你要在你的软件中处理两个不同的领域。你程序中的一些 objects对应你所模拟的世界里的东西,例如,people,vehicles,video frames等等。这样的 objects是 application domain(应用领域)的部分。另外的 objects纯粹是 implementation artifacts(实现的产物),例如,buffers( 缓冲区),mutexes(互斥体),search trees(搜索树)等等。这些各类 objects定义应你的软件的 implementation domain(实现领域)。当 composition(复合)发生在 application domain(应用领域)的 objects之间,它表达一个 has-a(有一个)的关系,当它发生在 implementation domain(实现领域),它表达一个 is-implemented-in-terms-of(是根据……实现的)的关系

来自:http://dev.yesky.com

你可能感兴趣的:(composition(复合))