UML对描述模板化代码有用吗?

Rom*_*n L 10 c++ oop templates uml

我想知道UML是否有助于描述重度模板化的代码.我知道UML(vector<T> <---- <<bind>> ---- vector<int>)中存在参数化类的概念,但这不足以描述我们可以使用模板的复杂鸭类关系.我总是可以在这些类之间建立关联,但在我看来它实际上并没有帮助理解它是如何工作的.

此外,考虑到例如STL库,算法通常被实现为函数,因此不太适合OOP模型,尽管它们仍然表现得非常类似于引入类之间的关联的对象.

那么,绘制UML图来描述这样的模板化代码是否有意义?如果是这样,哪种图表最有用 - 在"标准"OOP中,我看到大多数时候都使用类图,但是对于模板化代码,其他一些图表会更有用吗?如果UML不太适合,那我还能用什么呢?

小智 2

我认为这取决于。

如果不同的实例化将导致显着不同的行为或关系,那么虽然可以使用 UML 进行建模,但它会很丑陋。另一方面,如果不同实例化的行为确实如此不同,那么无论如何,我不确定模板是一个好主意。

但是,如果类之间的关系无论如何实例化都或多或少保持相同,那么 UML 类图对于建模这些关系将与非参数化类一样有用。