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..........
.....................................................................................

これは非常に単純化された、不完全な例です。より多くのクラスが相互作用し、それらのクラス間でより多くのアクション (「矢印」) を持つことができます。しかし、一般的な考え方は、どのように相互作用するかを見ることです。

場合によっては、同じクラスが内部的に Interface クラスと Controller クラスの両方の機能を持っていることがあります。

乾杯。

于 2012-07-03T18:24:34.077 に答える