假设我想用 groovy 编写一个大型应用程序,并利用闭包、类别和其他概念(我经常使用它们来分离关注点)。有没有办法以简单的方式绘制或以其他方式交流这些东西的架构?例如,您如何详细说明(没有详细的文档)闭包图可能会做的事情?我知道动态语言功能通常不推荐在更大范围内使用,因为它们被视为复杂,但必须如此吗?
问问题
355 次
2 回答
3
UML 并不能很好地处理这些事情,但是如果您愿意做一些思维导图,您仍然可以使用它来传达您的设计。您可以在大多数动态概念和 UML 静态对象模型之间找到同构。
例如,您可以将闭包视为实现单一方法接口的对象。将此类接口建模为比interface Callable { call(args[0..*]: Object) : Object }更具体的东西可能很有用。
鸭子打字可以类似地作为一个界面。如果你有一个方法接受可以嘎嘎的东西,那么将它建模为接受一个对象,该对象是接口 _interface Quackable { quack() } 的特化。
您可以将您的想象力用于其他概念。请记住,设计图的目的是交流想法。所以不要对 100% 建模一切过于迂腐,想想你想让你的图表说什么,确保他们这么说,并消除任何会淡化信息的无关细节。如果你使用了一些对目标受众来说并不明显的概念,请解释它们。
此外,如果 UML 确实无法处理您想说的内容,请尝试其他方式来可视化您的消息。UML 只是一个不错的选择,因为它为您提供了一个通用词汇表,因此您不必解释图表上的每个概念。
于 2009-07-09T06:52:39.340 回答