0

我正在尝试 UML 及其所有无聊的设计模式。我有一个演员请求通过接口(边界)登录,我是否必须在我的接口之后绘制一个控制器类并控制这个请求或者接口就足够了?使用接口类作为控制器类有什么问题?谁能告诉我在我的序列图中我应该在哪里使用控制器类?这是一个简单的图像:在此处输入图像描述

4

1 回答 1

1

在 UML 序列图中,您可以使用任何类,无论是“接口”、“控制器”或“数据访问”,还是更通用的类。

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

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

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

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

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

干杯。

于 2012-07-03T18:24:34.077 回答