授权与汇总与协商

时间:2010-09-30 10:37:39

标签: language-agnostic concept

这些条款之间有什么区别,您能举一些小例子吗?

3 个答案:

答案 0 :(得分: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

咨询我什么都不知道,抱歉

HTH

马里奥

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

答案 1 :(得分:0)

描述了授权和咨询之间的区别here

似乎大多数人所说的代表团可能更适合参考咨询。

我想参考中描述的更正式意义上的委托将被实现为委托给Concrete类的Abstract基类。

答案 2 :(得分:0)

  

授权,聚合和咨询不是设计模式。它们是概念,有助于我们描述设计模式。 for more

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

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

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

面向对象编程中的

咨询在对象的方法实现包含向同一个组成对象发送相同消息的消息时发生。

wiki:Delegation Composition Consultation