Pergunta

Não consigo distinguir a diferença entre agregar e segurando. O que significa, em termos de, vamos `s dizer, C ++?
Suponho que quando o objeto da classe A possui (ou instancia) objetos da classe B, que usa para executar algumas funções por si só.
Por exemplo:

class A {
 int state;
 public: 
  A(int s): state(s) {}
  int inc() { return state++; }
};
class B {
  int app;
  string s;
public:
  B(): app(0), s("") {}
  B(int A, const string& str): app(A), s(str) {}
  void f(int p);
  ~B() { app = 0; s = ""; }
};
void B::f(int p)
{
   A mA(p);
   app = mA.inc();
}

E a agregação de objeto da classe A seria assim:

class B{
 A t;
 //...
}

Por favor, me dar um link para um web-site ou para um lugar em um livro onde eu posso encontrar definições claras em termos de linguagem OO o que exatamente cada tipo de relacionamento entre as classes é.

Foi útil?

Solução

Segurando outro meio classe que uma classe é associadas com outra classe através de uma relação pai e filho. Por exemplo, um Path tem uma lista de pontos. O caminho é o pai da lista de pontos que é o pai dos pontos individuais.

meios agregando tendo aulas diferentes e colocá-los atrás de uma interface para que eles aparecem como uma classe. Por exemplo, um FileDialog terá vários classe botão, uma classe de entrada de texto, uma classe listview / treeview e assim por diante. Mas, para o resto do sistema, ele só tinha métodos para ser ativar, talvez atribuir um nome de arquivo padrão, e recuperar o resto.

O fato é composto por todas as outras classes é irrelevante para outras classes de usá-lo como um filedialog.However ele funciona através da agregação de todas as classes para executar o comportamento esperado.

Outras dicas

IMO, se eu entendi corretamente, você está pedindo uma definição de Composição vs. Agregação. Agregação ou na exploração é um conjunto de entidades. Composição tem uma restrição mais apertado. Pense em pontuações médias atribuídas ao estudante: quando calculamos uma média, não podemos excluir qualquer item. A composição é semelhante a este. No item pode ser omitido. Agregação por outro lado é mais vagamente definido.

Uma analogia interessante seria a de uma aljava cheia de flechas e um carro. Um estremecimento é uma agregação de setas, tremor podem existir sem setas; Car é uma Composição (Soma de peças). E não vamos argumentar que um carro sem uma roda ainda é um carro:)

Quanto a referências: http://www.bletchleypark.net/algorithms/software /oop.html

É muito sobre propriedade e visibilidade. Há nomes diferentes para essas relações, mas você deve considerar estes dois pontos:

  • Será que o pai tem estrita propriedade sobre a criança, de modo que quando as matrizes pais, a criança deveria morrer também?

  • A criança está visível para outras entidades além do pai?

As respostas a estas perguntas irão ajudá-lo a esclarecer essas relações.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top