在UML中如何描述以"void*"作为输入的成员函数?
How to describe a member function with "void*" as input in UML?
我是UML新手,如何用带void*的成员函数来描述下面的class?
// used on linux
#include <unistd.h>
class LinuxReadWrapper
{
public:
LinuxReadWrapper(){/** Ctor */}
~LinuxReadWrapper(){/** Dtor */}
ssize_t WrapperRead(void* buf)
{
return read(fd, buf, cnt);
}
private:
int fd{-1};
size_t cnt{0};
};
谢谢!
一个解决方案可能是在您的模型中创建一个 void 或 void* 类型。
然后在下面输入您的输入参数。
这也取决于您是仅出于文档目的还是出于代码目的需要它 generation/reverse。在最后一种情况下,这将取决于所使用的工具...
虽然红熊的回答很实用,但还是要提醒一下:
- UML 内置 primitive types 限于:
Integer
、String
、Boolean
、UnlimitedNatural
和 Real
- UML 类型可以在 profile. Such a profile can extend the UML standard metamodel and introduce new
«datatype»
的帮助下扩展。配置文件是一个包,您可以将其导入到所有需要它的模型中。为编程语言特定类型提供编程语言配置文件是很常见的。
- 指针(例如
my_type *
)需要格外小心,因为通常指针不是与 UML 模型相关的类型,因为指针的目的是实现与普通对象的关联(例如 class my_type
)。
- 在这方面,
void*
指针有些特殊,因为它指向未知类型的对象,因此保持它在模型中的原样是一种可以理解的方法。
好消息是数据类型是 UML 的标准特性。因此,在任何体面的建模工具中,您都应该找到一种方法。例如:
- Enterprise Architect 允许您向项目添加新的数据类型
- StarUML 允许您向项目添加新的数据类型
- Visual Pardigm 允许您向项目配置添加新的数据类型
- 许多工具只允许您使用您想要的任何类型。 Visual Studio 例如,只允许您使用任何数据类型,并将无法识别的类型添加到模型中。
- 等...
我是UML新手,如何用带void*的成员函数来描述下面的class?
// used on linux
#include <unistd.h>
class LinuxReadWrapper
{
public:
LinuxReadWrapper(){/** Ctor */}
~LinuxReadWrapper(){/** Dtor */}
ssize_t WrapperRead(void* buf)
{
return read(fd, buf, cnt);
}
private:
int fd{-1};
size_t cnt{0};
};
谢谢!
一个解决方案可能是在您的模型中创建一个 void 或 void* 类型。 然后在下面输入您的输入参数。 这也取决于您是仅出于文档目的还是出于代码目的需要它 generation/reverse。在最后一种情况下,这将取决于所使用的工具...
虽然红熊的回答很实用,但还是要提醒一下:
- UML 内置 primitive types 限于:
Integer
、String
、Boolean
、UnlimitedNatural
和Real
- UML 类型可以在 profile. Such a profile can extend the UML standard metamodel and introduce new
«datatype»
的帮助下扩展。配置文件是一个包,您可以将其导入到所有需要它的模型中。为编程语言特定类型提供编程语言配置文件是很常见的。 - 指针(例如
my_type *
)需要格外小心,因为通常指针不是与 UML 模型相关的类型,因为指针的目的是实现与普通对象的关联(例如 classmy_type
)。 - 在这方面,
void*
指针有些特殊,因为它指向未知类型的对象,因此保持它在模型中的原样是一种可以理解的方法。
好消息是数据类型是 UML 的标准特性。因此,在任何体面的建模工具中,您都应该找到一种方法。例如:
- Enterprise Architect 允许您向项目添加新的数据类型
- StarUML 允许您向项目添加新的数据类型
- Visual Pardigm 允许您向项目配置添加新的数据类型
- 许多工具只允许您使用您想要的任何类型。 Visual Studio 例如,只允许您使用任何数据类型,并将无法识别的类型添加到模型中。
- 等...