2010-09-30 3 views

ответ

1

Агрегация: От http://en.wikipedia.org/wiki/Aggregate_pattern

В шаблонах проектирования, агрегат является не шаблон дизайна, а скорее относится к объекту, такой как список, вектор, или генератор, который обеспечивает интерфейс для создания итераторы.

В нескольких словах содержит 0 или более элементов другого типа.

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

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

Делегат: От http://en.wikipedia.org/wiki/Delegation_pattern

В программной инженерии, шаблон делегация шаблон проектирования в объектно-ориентированном программировании, где объект, вместо того, чтобы выполнять одну своих заявленных задач, делегатам, что задача связанного вспомогательного объекта

Это означает, что какой-то класс использует другой объект для чего-то.

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); 
    } 
} 

Или в C# делегации может просто сослаться на функции делегата, см http://msdn.microsoft.com/de-de/library/900fyy8e%28VS.80%29.aspx

Консультация я не знаю ничего от, извините

НТН

Марио

Примечание: Я сделал на самом деле не компилировать код выше.

0

Существует описание различия между делегацией и консультацией here.

Похоже, что то, что большинство людей называют делегацией, может быть более правильно передано на консультацию.

Я полагаю, что делегация в более формальном смысле, описанном в ссылке, будет реализована как абстрактный базовый класс, делегирующий класс Concrete.

0

Делегация, агрегирование и консультации не являются образцами дизайна. Они представляют собой концепции, которые помогают нам описывать шаблоны проектирования. for more

Состав является способ объединить простые объекты или типы данных в более сложную т.е. как единое целое. Композиции являются важным строительным блоком многих базовых структур данных

Aggregation отличается от обычного состава в том, что она не подразумевает владение. В композиции, когда объект-владелец уничтожается, также находятся объекты, содержащиеся в нем.В агрегации это необязательно.

Делегация - это простая, но мощная концепция передачи задачи другой части программы. В объектно-ориентированном программировании он используется для описания ситуации, когда один объект назначает задание на другой объект, известную как делегат

консультации в объектно-ориентированном программировании происходит при реализации методы объекта состоит из отправки сообщений из то же сообщение другому составляющему объекту.

вики: Delegation Composition Consultation