我可以在序列图中绘制边界类(作为接口)而不是控制器类吗?

时间:2012-07-03 11:19:24

标签: uml sequence-diagram

我正在尝试UML及其无聊的设计模式。 我有一个演员要求通过界面(边界)登录,我是否必须在我的界面后绘制控制器类并控制此请求或界面是否足够? 使用接口类作为控制器类有什么问题? 任何人都可以告诉我在序列图中我应该在哪里使用控制器类? 这是一张简单的图片:enter image description here

1 个答案:

答案 0 :(得分:1)

在英国。序列图您可以使用任何类,其中包括“接口”,“控制器”或“数据访问”,或更通用的类。

仅仅因为一个类是“边界”/“接口”或“数据访问”类,并不意味着它根本不像许多软件分析师所想的那样进行任何操作。

相反,“interface”类执行的操作仅限于其自身的功能,例如计算要绘制的窗口区域,或者是“数据访问”类,用于汇总列。

.....................................................................................
..+-------------+....+---------------+....+----------------+....+-----------------+..
..|  <<actor>>  |....| <<interface>> |....| <<Controller>> |....| <<Data Access>> |..
..|    User     |....|  LoginWebPage |....|   LoginWebPage |....|   LoginWebPage  |..
..+------+------+....+-------+-------+....+--------+-------+....+---------+-------+..
.........|...................|.....................|......................|..........
.......+-+-+...............+-+-+...................|......................|..........
.......|   |...Enter().....|   |.Draw()............|......................|..........
.......|   +==============>+   +====+..............|......................|..........
.......|   |...............|   |....|..............|......................|..........
.......|   +<--------------+   +<===+..............|......................|..........
.......|   |...............|   |...................|......................|..........
.......|   |...Login(......|   |...................|......................|..........
.......|   |...UserName,...|   |.................+-+-+..................+-+-+........
.......|   |...Password)...|   |...Validate()....|   |..Seek(UserName)..|   |........
.......|   +==============>+   +================>+   +=================>+   +===+....
.......|   |...............|   |.................|   |.......User.......|   |...|....
.......|   |...............|   |.................|   +<-----------------+   +<==+....
.......|   |...............|   |.................|   |..................|   |........
.......|   |...............|   |.................|   +===+..............+-+-+........
.......|   |...............|   |.................|   |...|.Compare()......|..........
.......|   +<--------------+   +<----------------+   |<==+................|..........
.......|   |...............|   |.................|   |....................|..........
.......+-+-+...............+-+-+.................+-+-+....................|..........
.........|...................|.....................|......................|..........
.........X...................X.....................X......................X..........
.....................................................................................

这是一个非常简化甚至不完整的例子。它可以有更多的类交互,以及这些类中的更多动作(“箭头”)。但是,一般的想法是看看如何互动。

有时,同一类可能在内部具有接口和放大器的功能。控制器类。

干杯。