问个UML的问题,UML关系在这里应该怎么表示

CheerDesiger 2008-04-17 03:00:02
问个UML的问题,甚谢!
interface A{
public int Look();
public int Draw();
}

private class A1:A{
public int Look(){
//
}
public int Draw(){
}
}

private class A2:A{
public int Look(){
//
}
public int Draw(){
//
}
}

abstract class B{
//在这里根据配置创建对象,可能是A1的实例,也可能是B1的实例,也可能两者都有
private static List<A> _a = CreateInstance();

public static int Look(){
//这里可能调用A1.Look,也可能调用B1.Look,根据配置来
return _a[0].Look();
}
}

那么这里的B与A的关系是什么?
可能_a里面可能只有A1或A2啊,当然也可能两者都有,那么B与A1,A2是关联的关系吗?
如果不是B与A1,A2是什么关系呢?
...全文
142 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
CheerDesiger 2008-05-09
  • 打赏
  • 举报
回复
但是B只是可能会使用到A1,A2,A3,A4中的任何一个,
也有可能只存在使用A1,没有A2,A3,A4,难道我也要用
Use来表示B与A2,A3,A4的关系吗?
fxqyyzg 2008-05-09
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 CheerDesiger 的回复:]
但是B只是可能会使用到A1,A2,A3,A4中的任何一个,
也有可能只存在使用A1,没有A2,A3,A4,难道我也要用
Use来表示B与A2,A3,A4的关系吗?
[/Quote]

B Use a, 然后a1,a2...继承于a

leishuai 2008-04-22
  • 打赏
  • 举报
回复
A是接口,A1和A2来实现接口A 。他们和A是实现关系
在B中 使用到了a1或a2 属于依赖关系 B依赖于a1、A2.并且他们之间的依赖关系是明显的使用关系 为强调依赖关系为“使用”在UML建模时,可以使用带《use》的原型来修饰这个依赖关系
CheerDesiger 2008-04-18
  • 打赏
  • 举报
回复
忘了,把List<A>写成了Dictionary<A>了,不过差别不大.
感谢大家的回复.
CheerDesiger 2008-04-18
  • 打赏
  • 举报
回复
B与A1,A2的关系是什么呢?

B的成员 private static Dictionary<A> _a = CreateInstance();

private static A CreateInstance(){
Dictionary<A> dict = new Dictionary<A>();
foreach( Setting _set in settings){
A clsA = null;
clsA = (A)LoadClass(_set.Type); //_set.Type是定义的字串,可能是A1,A2,A3,A4
dict .Add(clsA);
}
return dict;
}

由上可见,只要settings里面包含了的,都会被创建一个实例然后包含进Dictionary<A>
可能同时包含A1,A2,也可能只包含A1,不包含A2,也可能包含A2,不包含A1,

我知道A1,A2是A的实现
那么B 与A1,A2应该是什么呢, B与A又是什么关系呢,如果说B与A1是关联,但他又可能没有包含A1
如果说没有关联,他又可能包含了A1,所以才觉得困惑, 请高手发表意见!
liuxiao000 2008-04-18
  • 打赏
  • 举报
回复
我一看这种东西就头疼
kelph 2008-04-17
  • 打赏
  • 举报
回复
A和A1,A2 泛化
kelph 2008-04-17
  • 打赏
  • 举报
回复
依赖
hityct1 2008-04-17
  • 打赏
  • 举报
回复
B与A的关系没有直接的关系。
A与A1,A2 泛化关系。
List <A>是B的变量,B与List <A>聚集关系。

List是容器,由若干个A1,A2组成,是组成关系。


仅供参考。
tongki 2008-04-17
  • 打赏
  • 举报
回复
private static List <A> _a = CreateInstance();

决定了List <A>里的东西在存在时,只有A1或A2,而不会同时有A1和A2.

B与A1,A2是什么关系?
B信赖于A;
A1和A2是A的实现
cuiyue4420 2008-04-17
  • 打赏
  • 举报
回复
都是派生
cmm2cmmi 2008-04-17
  • 打赏
  • 举报
回复
//在这里根据配置创建对象,可能是A1的实例,也可能是B1的实例,也可能两者都有

也可能是A2的实例?

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧