2

这些术语有什么区别,你能举个小例子吗?

4

3 回答 3

2

聚合:来自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

咨询我一无所知,对不起

hth

马里奥

注意:我实际上并没有编译上面的代码。

于 2010-09-30T10:57:06.547 回答
0

这里有委托和协商的区别说明。

似乎大多数人所说的代表团可能更恰当地称为协商。

我想参考中描述的更正式意义上的委托将被实现为抽象基类,委托给具体类。

于 2010-09-30T11:45:13.777 回答
0

委托、聚合和咨询不是设计模式。它们是帮助我们描述设计模式的概念。更多

组合是一种将简单的对象或数据类型组合成更复杂的对象或数据类型的方法,即作为一个单元。组合是许多基本数据结构的关键组成部分

聚合与普通组合的不同之处在于它并不意味着所有权。在组合中,当拥有对象被销毁时,包含的对象也会被销毁。在聚合中,这不一定是真的

委托是将任务交给程序的另一部分的简单而强大的概念。在面向对象编程中,它用于描述一个对象将任务分配给另一个对象的情况,称为委托

当一个对象的方法实现包括将相同消息发送到另一个组成对象的消息时,就会出现面向对象编程中的咨询。

wiki: 代表团 组成 咨询

于 2015-07-20T04:06:25.747 回答