Pregunta

¿Cuál es la diferencia entre estos términos, puede dar pequeños ejemplos por favor?

¿Fue útil?

Solución

Agregación: de http://en.wikipedia.org/wiki/aggregate_pattern

En los patrones de diseño, un agregado no es un patrón de diseño, sino que se refiere a un objeto como una lista, vector o generador que proporciona una interfaz para crear iteradores.

El significado en breves elementos contiene 0 o más otros elementos de otro 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

En la ingeniería de software, el patrón de delegación es un patrón de diseño en la programación orientada a objetos donde un objeto, en lugar de realizar una de sus tareas declaradas, delega esa tarea a un objeto auxiliar asociado

Lo que significa que alguna clase usa otro objeto para hacer 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 );
    }
}

O en C# Delegation puede solo referirse a una función delegada, ver http://msdn.microsoft.com/de-de/library/900fyy8e%28vs.80%29.aspx

Consulta No sé nada libre, lo siento

hth

Mario

Nota: En realidad no compilé el código anterior.

Otros consejos

Hay una descripción de la diferencia entre delegación y consulta. aquí.

Parece que lo que la mayoría de la gente se refiere como delegación podría referirse más adecuadamente a la consulta.

Supongo que la delegación en el sentido más formal descrito en la referencia se implementaría como una clase de base abstracta que delega a una clase concreta.

La delegación, la agregación y la consulta no son patrones de diseño. Son conceptos nos ayudan a describir los patrones de diseño. para más

Composición es una forma de combinar objetos simples o tipos de datos en uno más complejo, es decir, como una sola unidad. Las composiciones son un componente crítico de muchas estructuras de datos básicas

Agregación difiere de lo ordinario composición en eso no implica propiedad. En composición, cuando se destruye el objeto de propiedad, también lo son los objetos contenidos. En agregación, esto no es necesariamente cierto

Delegación es el concepto simple pero poderoso de entregar una tarea a otra parte del programa. En la programación orientada al objeto se usa para describir la situación en la que un objeto asigna una tarea a otro objeto, conocido como delegado

Consulta En la programación orientada a objetos ocurre cuando la implementación del método de un objeto consiste en un mensaje de envío del mismo mensaje a otro objeto constituyente.

wiki: Delegación Composición Consulta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top