private static void TestarAssociacaoAgregacaoComposicaoOrcamento() { var cliente = new Cliente("João", "123", new DateTime(1980, 1, 1)); Console.WriteLine(string.Format("João, sem nenhum orçamento associado: {0}.", cliente.Orcamentos.Count)); Console.WriteLine("-------------------"); var dell = new Marca(1, "Dell"); var hp = new Marca(2, "HP"); var mouse = new Produto(1, "Mouse", 5, 10, dell); var teclado = new Produto(2, "Teclado", 10, 20, hp); var orcamento = new Orcamento(cliente); orcamento.AdicionarItem(mouse, 2); orcamento.AdicionarItem(teclado, 1); Console.WriteLine(string.Format("João, com 1 orçamento associado: {0}.", cliente.Orcamentos.Count)); Console.WriteLine("-------------------"); Console.WriteLine("Produtos:"); foreach (var item in orcamento.Itens) { Console.WriteLine(string.Format("Item {0}, valor {1}, marca {2}", item.Produto.Descricao, item.Preco, item.Produto.Marca.Descricao)); } Console.WriteLine("-------------------"); orcamento.Dispose(); orcamento = null; Console.WriteLine("Orçamento e itens (composição) não existem mais. Mas o João continua existindo (agregação)."); Console.WriteLine("-------------------"); }