【发布时间】:2021-08-30 20:49:18
【问题描述】:
我发现同时学习设计模式和 UML 很困难,因为有不同的方式来描述相同的模式,这让我不确定什么是唯一的事实来源。
以迭代器模式为例,这里只是我在知名网站上看到的一些图表:
1 维基百科
https://en.wikipedia.org/wiki/Iterator_pattern
2 教程要点
https://www.tutorialspoint.com/design_pattern/iterator_pattern.htm
3 重构大师
https://refactoring.guru/design-patterns/iterator
4 OODESIGN
https://www.oodesign.com/iterator-pattern.html
5 HOWTODOINJAVA
https://howtodoinjava.com/design-patterns/behavioral/iterator-design-pattern/
最让我困惑的是箭头符号是如何用来描述这些类之间的关系的。有时它们是泛化,有时是接口实现,定向关联或依赖。连构图也用了……
我想知道什么是让我明白这一切的最佳方式。
【问题讨论】:
-
购买 Gamma 等人的设计模式。他们“发明”了它,并且对符号 (TM) 应该是正确的。这是 Wiki 文献中提到的第一个来源。
-
那个教程点是完全错误的。他们使用命名关联而不是实现/概括。那是完全不同的事情。不确定 Gamma 使用后者中的哪一个;它们有不同的含义。
标签: design-patterns iterator uml software-design class-diagram