我正在尝试为责任链模式绘制UML图。我指的是http://www.vincehuston.org/dp/chain.html和
http://www.dofactory.com/Patterns/PatternChain.aspx
在Vincehuston图中,基类有一个自循环,因为基类需要有一个指向下一个处理程序对象的指针。
在工厂图中,在派生类中存在基类的聚合。
你能告诉我哪一个是正确的吗?DoFactory主要是基于C#来解释的,有什么区别吗?
发布于 2011-01-24 19:25:47
我看到的两种解释之间的唯一区别是指向下一个处理程序(基处理程序类或具体实现)的指针在哪里,它应该在基类上表示,因为它将在每个实例中继承。
因此,在我看来,vincehuston表示更准确。
如果您查看dotfactory中的实际实现,您将会看到,尽管它使用UML表示,但它还是将后继器放在了基类中。
编辑:实现的不同之处在于,通过向后继者提供实例或调用后继者的基本方法来调用后继者的方式。在这两种情况下,方法或成员都是从基类继承的,因此聚合是错误的,当您使用继承的成员或方法时,您不会定义聚合。
https://stackoverflow.com/questions/4781361
复制相似问题