一幽告、類圖示例
- 車的類圖結(jié)構(gòu)為<<abstract>>,表示車是一個(gè)抽象類突颊;
- 它有兩個(gè)繼承類:小汽車和自行車鲁豪;它們之間的關(guān)系為實(shí)現(xiàn)關(guān)系潘悼,使用帶空心箭頭的虛線表示;
- 小汽車為與SUV之間也是繼承關(guān)系爬橡,它們之間的關(guān)系為泛化關(guān)系挥等,使用帶空心箭頭的實(shí)線表示;
- 小汽車與發(fā)動(dòng)機(jī)之間是組合關(guān)系堤尾,使用帶實(shí)心箭頭的實(shí)線表示肝劲;
- 學(xué)生與班級(jí)之間是聚合關(guān)系,使用帶空心箭頭的實(shí)線表示郭宝;
- 學(xué)生與身份證之間為關(guān)聯(lián)關(guān)系辞槐,使用一根實(shí)線表示;
- 學(xué)生上學(xué)需要用到自行車粘室,與自行車是一種依賴關(guān)系榄檬,使用帶箭頭的虛線表示;
1.實(shí)現(xiàn)關(guān)系
interface B
class A
A implements B
2.繼承關(guān)系
class B
class A
A extends B
3.聚合關(guān)系 has-a
概念:關(guān)聯(lián)的一種特例衔统,是強(qiáng)的關(guān)聯(lián)關(guān)系鹿榜,聚合是整體和個(gè)體之間的關(guān)系。整體和個(gè)體可以具有各自的生命周期锦爵,部分可以屬于多個(gè)整體對(duì)象舱殿,也可以為多個(gè)整體對(duì)象所共享。
class Student {
}
public class School{
private Student mStudent;
}
4.組合關(guān)系
概念:關(guān)聯(lián)的一種特例险掀,整體和部分的關(guān)系沪袭,即contains-a的關(guān)系,部分與整體的生命周期一致樟氢,整體的生命周期結(jié)束也就意味著部分的生命周期結(jié)束冈绊,組合關(guān)系不能共享。
表示方法:實(shí)心的菱形箭頭埠啃,也可以沒(méi)有箭頭
public abstract class Human {
protected Leg mLeg;
protected Hand mHand;
protected Head mHead;
...
}
不同于聚合關(guān)系,人類的手,腳是不可以屬于其他類的
5.依賴
概念:一種使用關(guān)系死宣,一個(gè)類的實(shí)現(xiàn)需要另一個(gè)類的協(xié)助
表示方法:虛線箭頭,需要依賴的類A指向依賴的類B
class Driver extends Human{
public void drive(){
}
}
public class Car {
public void run(Driver driver){
driver.drive();
}
}
6.關(guān)聯(lián)
概念:比依賴關(guān)系更強(qiáng)烈碴开,關(guān)系不是臨時(shí)的毅该,是長(zhǎng)期性的
表示方法:實(shí)線箭頭,可以是雙向的
class Student {
}
public class Teacher {
private Student mStudent;
}
二叹螟、時(shí)序圖示例
- 一開(kāi)始用戶給類型為GUI(界面)的Login對(duì)象發(fā)送一個(gè)登錄信息 「 login(userName狗唉,passWord)」 笼平;
- Login這個(gè)對(duì)象接收到了就會(huì)產(chǎn)生活動(dòng)條,這時(shí)候Login這個(gè)界面會(huì)給類型為Controller的loginController發(fā)送登錄信息「 login(userName味榛,passWord)」 静盅;
- 此時(shí)loginController接收到信息產(chǎn)生活動(dòng)條良价,這時(shí)候loginController去找類型為DB的UserDao寝殴,給它發(fā)送了一個(gè)獲取用戶密碼的信息「getUserPassword(userName)」;
- UserDao接收到信息后產(chǎn)生活動(dòng)條明垢,返回用戶的密碼蚣常;
- 此時(shí)loginController接收到信息(用戶的密碼 userPassword),loginController此刻將信息發(fā)送給自己痊银,通過(guò)verify去校驗(yàn)密碼并且用result接收結(jié)果抵蚊;
- 校驗(yàn)就產(chǎn)生了分支控制流,當(dāng)resul為true的時(shí)候loginController會(huì)發(fā)送success給Login溯革,當(dāng)result為false的時(shí)候贞绳,loginController會(huì)發(fā)送failure給Login;
- 最后Login最后給用戶發(fā)送messag信息致稀。
時(shí)序圖的組成部分
- 對(duì)象
- 生命線
- 活動(dòng)條
- 消息
- 控制流
1冈闭、對(duì)象
對(duì)象在矩形里邊,左邊是對(duì)象名稱抖单,右邊是對(duì)象類型萎攒,下方還有一條線:
對(duì)象的排列順序
1.對(duì)象的左右順序并不重要,但是為了作圖清晰整潔矛绘,通常應(yīng)遵循以下兩個(gè)原則:把交互頻繁的對(duì)象盡可能的靠攏耍休;
2.把初始化整個(gè)交互活動(dòng)的對(duì)象放置在最左端。
2货矮、生命線
在時(shí)序圖中表示為從對(duì)象圖標(biāo)向下延伸的一條虛線羹应,表示對(duì)象存在的時(shí)間。
3次屠、活動(dòng)條
活動(dòng)條是一個(gè)豎著的矩形园匹,當(dāng)接收到消息的時(shí)候,這個(gè)對(duì)象就會(huì)有活動(dòng)條:
4劫灶、消息
消息用一根箭頭裸违,箭頭上面寫上消息信息,例如一個(gè)登錄方法 login(userName,passWord):
消息一般分為同步消息(Synchronous Message)本昏,異步消息(Asynchronous Message)和返回消息(Return Message)供汛。
- 消息的發(fā)送者把控制傳遞給消息的接收者,然后停止活動(dòng)涌穆,等待消息的接收者放棄或者返回控制怔昨。用來(lái)表示同步的意義;
- 消息發(fā)送者通過(guò)消息把信號(hào)傳遞給消息的接收者宿稀,然后繼續(xù)自己的活動(dòng)趁舀,不等待接受者返回消息或者控制。異步消息的接收者和發(fā)送者是并發(fā)工作的祝沸。
- 返回消息表示從過(guò)程調(diào)用返回矮烹。
5越庇、控制流
-
抉擇(Alt)
-
選項(xiàng)(Opt)
-
循環(huán)(Loop)
-
并行(Par)