日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UML类图简介及类与类之间的关系

發布時間:2024/3/12 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UML类图简介及类与类之间的关系 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UML(Unified Modeling Language,統一建模語言)建模是面向對象開發設計方法中的第一步,用UML來表達設計模式不僅方便了開發人員的交流,而且更加清晰、準確。UML定義了5類10種模型圖,每種圖都有其不同的目的,說明了不同實體集合之間的關系,如下表:


由于在后面設計模式的學習中會大量的用到類圖,所以這里只對類圖進行簡單的介紹

UML類圖中的基本元素符號

1. 類

類的UML圖有3部分組成。
第一個部分是定義的類名,如果類名是用斜體字形表示,則表示該類是抽象類,否則就是具體的類。

第二部分是屬性,第三部分是方法。在屬性和方法之前均可附加一個訪問權限修飾符。加號(+)代表public;減號(-)代表private;#代表protected;沒有任何修飾符表示訪問權限是友好的,修飾符為friendly,但是需注意在java中是沒有friendly修飾符的。如果屬性或方法具有下劃線,則表明它是靜態的。如果在一個類圖中只想顯示高層細節,那么下面的兩部分信息(屬性和方法)不是必要的。

2. 接口

第一部分是接口的名稱,必須用斜體字表示,而且頂端要用<<interface>>來修飾;第二部分是常量;第三部分是方法。

3. 注釋

類與類之間的關系

在UML類圖中,類與類之間有以下幾種常見的關系:泛化(Generalization)、實現(Realization)、依賴(Dependency)、關聯(Association)和組合(Composition)

1. 泛化(繼承)

泛化也就是通常所說的繼承關系,也稱“is a kind of”關系。泛化是對象間耦合度最大的一種關系,UML表示法如下:

2. 實現

如果一個類B實現一個接口A的功能,那么類B和類A的關系就是實現,UML表示法如下:

3. 依賴

如果B作為參數被A類在某個方法中使用,則A依賴于B,UML表示法如下:


java代碼示例為:

public class Car {}public class Person {private String name;public void drive(Car car) {} }

4. 關聯

如果A類中的成員變量是用B類聲明的變量,即B類作為A類的一個屬性存在,則A關聯與B,UML類圖如下:

java代碼示例為:

public class B {}public class A {private B b;public B getB() {return this.b;}public void setB(B b) {this.b = b;} }

另外,除了上述的單向關聯外,還有雙向關聯和自關聯,UML類圖如下:

雙向關聯:

自關聯:

java代碼示例為:

public class Mouse {}public class Computer {private Mouse m;public Mouse getM() {return this.m;}public void setM(Mouse m) {this.m = m;} }

5. 聚合

聚合關系是關聯關系的一種(弱關聯),與關聯不同的是聚合體現的是整體和個體的關系,而關聯體現的是兩個處在同一層次的類之間的關系。這里的整體和個體是可以分離的,即個體可以獨立于整體存在,例如電腦和鼠標,二者是一種“has-a”的關系。UML類圖如下:

6. 組合

組合也是關聯的一種(強關聯),與聚合類似,同樣體現的是整體和個體的關系,但這里的整體和個體是不可以分離的,即個體是整體的一部分,例如電腦和CPU。這種關系比聚合更強,是一種“contains-a”的關系,也稱強聚合。一旦整體對象不存在,部分對象也不存在;同樣部分對象不存在,整體對象也無法正常工作,部分和整體具有相同的生命周期。代碼上表現為A類中的成員變量是用B類聲明的變量,并且B對象在A對象創建時創建。UML類圖如下:


java代碼示例為:

public class CPU {}public class Computer {private CPU c;public Computer () {c = new CPU();} }

實例分析——聊天系統登錄模塊

基于C/S的聊天系統登錄模塊功能描述:

用戶通過登錄頁面(LoginForm)輸入賬號和密碼,系統將輸入的賬號和密碼與存儲在數據庫(User)表中的用戶信息進行比較,驗證用戶輸入是否正確,如果輸入正確,則進入主界面(MainForm),否則提示“輸入錯誤”。

該系統中類的說明表如下:

類名說明
LoginForm登錄窗口(邊界類)
LoginBO登錄業務邏輯類,封裝實現登錄功能的業務邏輯(控制類)
UserDao抽象數據訪問類接口,聲明對user表的數據操作方法(實體類)
UserDaoImpl具體數據訪問類,實現對user表的數據操作方法(實體類)
MainForm主窗口(邊界類)

各類中的方法說明如下表:

方法名說明
LoginForm類的LoginForm()方法LoginForm構造函數,初始化實例成員
LoginForm類的validate()方法界面類的驗證方法,通過調用業務邏輯類LoginBO的validate()方法實現對用戶輸入信息的驗證
LoginBO類的validate()方法業務邏輯類的驗證方法,通過調用數據訪問類的findUserByAccAndPwd()方法驗證用戶輸入信息的合法性
LoginBO類的setUserDao()方法在業務邏輯對象中注入數據訪問對象
UserDao接口的findUserByAccAndPwd()方法業務方法聲明
UserDaoImpl接口的findUserByAccAndPwd()方法業務方法實現,通過用戶輸入的賬號和密碼和數據庫中的信息進行比對

UML類圖設計如下:

java代碼粗略實現:

public class LoginForm {private LoginBO login;public LoginForm() {login = new LoginBO;}public boolean validate(String account, String password) {return login.validate(account, password);} }public class LoginBo {@Autowireprivate UserDao userDao;public boolean validate(String account, String password) { if (userDao.findUserByAccAndPwd(account, password)) {return true;}return false;} }public interface UserDao {boolean findUserByAccAndPwd(String account, String password); }public class UserDaoImpl implements UserDao {public boolean findUserByAccAndPwd(String account, String password) {// select * from user where account=#{account} and password=#{password}} }@Test public void TestLogin {// 接收用戶輸入的account和passwordString account;String password;LoginForm loginForm = new LoginForm();if (loginForm.validate(account, password)) {// 進入主界面MainForm} else {// 提示登錄失敗}}

總結

以上是生活随笔為你收集整理的UML类图简介及类与类之间的关系的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美极品少妇×xxxbbb | 中文字幕av久久爽一区 | 精品日韩欧美 | 亚洲成人免费网站 | 日韩少妇激情 | 自拍偷拍亚洲天堂 | 国产亲伦免费视频播放 | 一区二区三区视频免费视 | 国产女主播在线播放 | 尹人在线视频 | 一级黄色视 | 97久久久久久久 | 国产人妻一区二区 | 五月婷婷激情 | 最好看的2019中文大全在线观看 | 亚洲女人18毛片水真多 | 久久av资源| 久久精品国产亚洲AV熟女 | 亚洲av综合色区 | 日本黄色一区 | 伊人黄网 | 毛片网站在线播放 | 成人在线观看免费视频 | 潘甜甜在线 | 欧美手机在线视频 | 欧美一区二区三区久久成人精品 | 亚洲干干干 | 麻豆精品在线播放 | 国产毛片一区二区三区va在线 | 亚洲国产精品国自产拍久久 | 假日游船 | 中文字幕在线看 | 午夜爽爽爽| 欧美cccc极品丰满hd | av中出在线| 亚洲国产精品18久久久久久 | 成人网页在线观看 | 三级特黄视频 | 欧美偷拍另类 | 97热久久 | 精品久久久久久久久久久久久 | 天天干天天干天天操 | 五月六月婷婷 | 亚洲av无码国产精品麻豆天美 | 真人毛片97级无遮挡精品 | 高级家教课程在线观看 | 免费看黄的网址 | 久久久精品中文字幕麻豆发布 | 一级久久久久 | 国产精品一区二区三区在线播放 | 人人舔 | 日本在线视频www | 亚洲最大的成人网站 | 性欧美一区二区 | 亚洲AV成人无码精品久久盆瓶 | 成人在线免费高清视频 | 日本视频免费在线 | 女优一区| 午夜色播| 国产欧美日 | 精品成人国产 | 一级特级黄色片 | 五月激情网站 | 日本大尺度做爰呻吟舌吻 | 久草福利视频 | 欧美一卡 | 成年人免费在线视频 | 日日操影院| 91免费污视频 | 永久免费观看av | av动漫天堂 | 中文字幕第35页 | 亚洲国产97 | 人妻 丝袜美腿 中文字幕 | 欧美色图日韩 | 黄网视频在线观看 | 成人精品一区二区三区在线 | 久久99精品国产.久久久久久 | 亚洲美女av网站 | 中文字幕久热 | 日韩av高清在线观看 | 精品国产日本 | av最新版天堂资源在线 | 天天干天天干天天干天天 | 精品久久久久久久久久久aⅴ | 久久久久亚洲国产 | 亚洲精品视频一二三区 | 性爱动漫 | 超碰人人草 | 国内黄色片 | 森泽佳奈中文字幕 | 中文字幕av免费观看 | 国产中文字幕一区 | a片在线免费观看 | 日韩淫片 | 国产做受入口竹菊 | 色爽| 久久亚洲精品石原莉奈 | 国产一区二区三区观看 |