私はUMLとそのすべての退屈なデザインパターンを試しています。インターフェイス(境界)を介してログインを要求するアクターがいますが、インターフェイスの後にコントローラークラスを描画してこの要求を制御する必要がありますか、それともインターフェイスで十分ですか?インターフェイスクラスをコントローラクラスとして使用する場合の問題は何ですか?シーケンス図のどこでコントローラークラスを使用すべきかを誰かに教えてもらえますか?これは単純な画像です。
質問する
3780 次
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 に答える