Pergunta

Qual é a diferença entre estes termos, você pode dar pequenos exemplos?

Foi útil?

Solução

Agregação: de http://en.wikipedia.org/wiki/aggregate_pattern

Nos padrões de design, um agregado não é um padrão de design, mas refere -se a um objeto como uma lista, vetor ou gerador que fornece uma interface para a criação de iteradores.

Significado em falta de elementos contém 0 ou mais outros elementos de outro tipo.

public class MyAggregation 
{   
   protected List<MyAggregates> aggregates = new List<MyAggregates>();

   public void add( MyAggregate element )
   {
        aggregates.Add( element );    
   }
}

Delegado: de http://en.wikipedia.org/wiki/delegation_pattern

Na engenharia de software, o padrão de delegação é um padrão de design na programação orientada a objetos em que um objeto, em vez de executar uma de suas tarefas declaradas, delega essa tarefa a um objeto auxiliar associado

Significando que alguma classe usa outro objeto para fazer algo.

public interface IExceptionHandler
{
    void handle( string filename );
}

public class FileDeleteExceptionHandler : IExceptionHandler
{
   public void handle( string filename )
   {
      File.Remove( filename );
   }
}


public class MyExceptionHandler
{
    protected IExceptionHandler exceptionHandler;

    public MyExceptionHandler( IExceptionHandler theHandler )
    {
       this.exceptionHandler = theHandler;
    }

    public void handleException( string filename )
    {
       excpetionHandler.handle( filename );
    }
}

Ou na delegação C# pode apenas se referir a uma função delegada, veja http://msdn.microsoft.com/de-de/library/900fyy8e%28vs.80%29.aspx

Consulta eu não sei nada, desculpe

hth

Mario

Nota: Na verdade, eu não compilei o código acima.

Outras dicas

Há uma descrição da diferença entre delegação e consulta aqui.

Parece que o que a maioria das pessoas chama de delegação pode ser mais adequadamente encaminhada à consulta.

Eu acho que a delegação no sentido mais formal descrito na referência seria implementado como uma classe base abstrata delegando a uma classe concreta.

Delegação, agregação e consulta não são padrões de design. Eles são conceitos nos ajudam a descrever padrões de design. para mais

Composição é uma maneira de combinar objetos simples ou tipos de dados em um mais complexo, isto é, como uma única unidade. Composições são um bloco de construção crítico de muitas estruturas básicas de dados

Agregação difere do comum composição na medida em que não implica propriedade. Na composição, quando o objeto próprio é destruído, o mesmo acontece com os objetos contidos. Em agregação, isso não é necessariamente verdadeiro

Delegação é o conceito simples e poderoso de entregar uma tarefa a outra parte do programa. Na programação orientada a objetos, é usado para descrever a situação em que um objeto atribui uma tarefa a outro objeto, conhecido como delegado

Consulta Na programação orientada a objetos, ocorre quando a implementação do método de um objeto consiste em uma mensagem enviar da mesma mensagem para outro objeto constituinte.

Wiki: Delegação Composição Consulta

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