Na programação orientada a objetos, há dois mecanismos possíveis para criar relacionamentos entres classes: a composição e a herança. Em um programa orientado a objetos, suponha que entre duas classes X e Y exista um relacionamento de herança no qual X é subclasse de Y. Suponha também que Y seja uma subclasse de uma classe abstrata denominada Z. Por fim, suponha que existam apenas métodos públicos ou privados, tanto em Y quanto em Z.
Para alterar esse programa de tal forma que ele permaneça o mesmo, do ponto de vista funcional para os clientes da interface pública da classe X, e que o relacionamento de herança entre X e Y seja substituído pelo de composição, um passo necessário no caso geral é definir um atributo do tipo
X na classe Y
X na classe Z
Y na classe X
Y na classe Z
Z na classe X
{TITLE}
{CONTENT}
{TITLE}
Aguarde, enviando solicitação...