我想知道UML是否用于描述大量模板化的代码.我知道在UML(vector< T><< bind> —- vector< int>)中存在参数化类的概念,但是这不足以描述复杂的鸭式关系,我们可以与模板.我总是可以把这些类之间的关联,但在我看来,实际上并不能帮助你了解它的工作原理.
此外,考虑到例如STL库,算法通常被实现为函数,因此不太适合于OOP模型,尽管它们仍然表现得非常类似于引入类之间的关联的对象.
那么绘制UML图来描述这样的模板代码是有意义的吗?如果是这样,哪种图表将是最有用的 – 在“标准”OOP中,我已经看到大多数时候都使用了类图,但是对于模板化代码,可能还有其他一些图表会更有帮助?如果UML不太适合,还能用什么?
解决方法
我认为这取决于
如果不同的实例化会导致明显不同的行为或关系,那么虽然可以用UML进行建模,但是这将是丑陋的.另一方面,如果行为与不同的实例化有所不同,我不知道模板是不是一个好主意.
但是,如果类之间的关系或多或少相同,无论如何实例化,那么UML类图就像为非参数化类一样对这些关系建模一样有用.