我正在网上商店工作。这是一个简单的网上商店,我必须为类创建域UML图并显示多重性。我对我想出的多样性感到困惑。我不知道如何区分组成,聚合和关联。下面是我想出的图表。有人能告诉我我是否走在正确的轨道上?
答案 0 :(得分:4)
还不错。除非您需要处理数据库设计中的内存管理或外键约束,否则您不应该为聚合而烦恼。把它们留下吧。
您应该做的一个重要更改是关联的角色名称。例如。而不是声明为属性的shippingAddress:Address
使用shippingAddress
上出现的Address
附近的角色User
来自Address
(等等)。
由于Address
是一种常见的地方并且全部使用,因此您可以将该类从此图表中删除,并创建一个单独的图表,其中with open('interfaces.txt') as infile:
# Each interface must be separated by a blank line as in the sample
interfaces = infile.read().split('\n\n')
interfaces = map(str.splitlines, interfaces)
interfaces = {lines[0][:-1]: [line.strip() for line in lines[1:]]
for lines in interfaces}
def interface_value(interface_name, line_prefix):
# Make this argument case-insensitive to make the function easier to use
line_prefix = line_prefix.lower()
lines = [line for line in interfaces[interface_name]
if line.lower().startswith(line_prefix)]
if len(lines) == 0:
raise ValueError('No lines found with given prefix')
if len(lines) > 1:
raise ValueError('Multiple lines found with given prefix: \n %s' % lines)
return lines[0][len(line_prefix):].strip(': ')
eth1_flags = interface_value('eth1', 'flags')
eth2_mtu = interface_value('eth2', 'Maximum Transfer Unit size is')
print(eth1_flags)
print(eth2_mtu)
位于中间,而所有其他人使用它环绕它。
答案 1 :(得分:0)
我同意托马斯,但我会展示其他要点,所以你可以调整你的图表。 请不要把它看成具有破坏性的东西。我相信这些技巧可以帮到你。
记住(部分)用(整体)
制作东西*如果您不从模型中生成代码。