delegação vs agregação versus consulta
-
26-09-2019 - |
Pergunta
Qual é a diferença entre estes termos, você pode dar pequenos exemplos?
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