Делегация против агрегации против консультаций
-
26-09-2019 - |
Вопрос
В чем разница между этими условиями, вы можете дать, пожалуйста, небольшие примеры?
Решение
Агрегация: от 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.
Консультация Я ничего не знаю, извините
емкость
Марио
Примечание: я на самом деле не скомпилировал код выше.
Другие советы
Существует описание разницы между делегированием и консультацией здесь.
Казалось бы, то, что большинство людей относятся к делегации, могут быть более должным образом упомянуты к консультации.
Я думаю, что делегация в более формальном смысле, описанном в ссылке, будет реализована как абстрактный базовый класс, делегирующий в конкретный класс.
Делегация, агрегация и консультации не являются шаблонами проектирования. Они концепции помогают нам описать узоры дизайна. для большего
Сочинение это способ объединения простых объектов или типов данных в более сложный, то есть в виде единого блока. Композиции являются критически важным строительным блоком многих основных структур данных
Агрегация отличается от обычного сочинение В этом он не подразумевает собственность. В составе, когда владение объектом разрушается, так и содержащиеся объекты. В агрегации это не обязательно верно
Делегация Это простая, но мощная концепция передачи задачи в другую часть программы. В объектно-ориентированном программировании используется для описания ситуации, когда один объект назначает задачу другому объекту, известной как делегат
Консультация В объектно-ориентированном программировании происходит, когда реализация метода объекта состоит из сообщений, отправленного то же сообщение для другого составного объекта.
Вики: Делегация Сочинение Консультация