这些术语有什么区别,你能举个小例子吗?
3 回答
聚合:来自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
马里奥
注意:我实际上并没有编译上面的代码。
委托、聚合和咨询不是设计模式。它们是帮助我们描述设计模式的概念。更多
组合是一种将简单的对象或数据类型组合成更复杂的对象或数据类型的方法,即作为一个单元。组合是许多基本数据结构的关键组成部分
聚合与普通组合的不同之处在于它并不意味着所有权。在组合中,当拥有对象被销毁时,包含的对象也会被销毁。在聚合中,这不一定是真的
委托是将任务交给程序的另一部分的简单而强大的概念。在面向对象编程中,它用于描述一个对象将任务分配给另一个对象的情况,称为委托
当一个对象的方法实现包括将相同消息发送到另一个组成对象的消息时,就会出现面向对象编程中的咨询。