starUML--面向对象的设计过程
OOAD與UML
面向?qū)ο?/strong>
- 面向?qū)ο?Object-Orientation, 簡(jiǎn)稱OO)是一種系統(tǒng)建模技術(shù)面向?qū)ο缶幊毯?jiǎn)稱OOP
- 通過(guò)分析系統(tǒng)內(nèi)對(duì)象的交互來(lái)描述或建模的一個(gè)系統(tǒng)
- 交互的對(duì)象最終是以類的形式組織
- OO的方法由三部分組成
- 過(guò)程
- 標(biāo)識(shí)
- 規(guī)則
對(duì)象
- 客觀存在的,唯一的實(shí)體
- 是面向?qū)ο缶幊踢^(guò)程中分析和解決問(wèn)題的出發(fā)點(diǎn)和基礎(chǔ)
- 擁有自己的標(biāo)識(shí)、數(shù)據(jù)與行為
- 可以簡(jiǎn)單或負(fù)責(zé)
- 可以抽象或具體
- 在OOP中是一個(gè)類的動(dòng)態(tài)實(shí)例
類
- 類是對(duì)象的模板
- 對(duì)象通過(guò)類實(shí)例化產(chǎn)生
- 一個(gè)類可以創(chuàng)建多個(gè)對(duì)象
OOAD
OOAD是根據(jù)OO的方法學(xué),對(duì)軟件系統(tǒng)進(jìn)行分析和設(shè)計(jì)的過(guò)程
- OOA分析階段
- OOD設(shè)計(jì)階段
**OOA**階段主要解決以下問(wèn)題
- 建立針對(duì)業(yè)務(wù)問(wèn)題域的清晰視圖
- 列出系統(tǒng)必須要完成的核心任務(wù)
- 針對(duì)問(wèn)題域建立公共詞匯表
- 列出針對(duì)此問(wèn)題的最佳解決方案
- 核心 - What to do?
**OOD**階段主要解決以下問(wèn)題
- 如何解決具體業(yè)務(wù)的問(wèn)題
- 引入系統(tǒng)工作所需要的支持元素
- 定義系統(tǒng)的實(shí)現(xiàn)策略
- 核心- How to do?
OOP主要特征
- 抽象
- 封裝
- 繼承
- 多態(tài)
- 關(guān)聯(lián)
- 聚合
- 組合
- 內(nèi)聚域耦合
抽象
忽略掉一個(gè)對(duì)象或?qū)嶓w的具體細(xì)節(jié)而只關(guān)注其本質(zhì)特征的過(guò)程
** 封裝**
- 隱藏?cái)?shù)據(jù)和實(shí)現(xiàn)
- 提供公共方法供用戶調(diào)用功能
- 對(duì)象的兩種視圖
繼承
- 通過(guò)存在的類型定義新類型的機(jī)制
- 通常在兩個(gè)類型之間存在is a或kind of這樣的關(guān)系
- 通過(guò)繼承可以實(shí)現(xiàn)代碼的重用,另外繼承也是多態(tài)的基礎(chǔ)
多態(tài)
- 一個(gè)名稱多種形式
- 基于繼承的多態(tài)
- 調(diào)用該方法根據(jù)所給的對(duì)象的不同選擇不同的處理方式
關(guān)聯(lián)
- 對(duì)象之間交互時(shí)的一種引用方式
- 當(dāng)一個(gè)對(duì)象通過(guò)另外一個(gè)對(duì)象的引用去使用另外一個(gè)對(duì)象的服務(wù)或操作時(shí),兩個(gè)對(duì)象之間便產(chǎn)生了關(guān)聯(lián)
- 如person使用computer,person和computer之間就產(chǎn)生了關(guān)聯(lián)
聚合
- 關(guān)聯(lián)關(guān)系的一種,一個(gè)對(duì)象成為另外一個(gè)對(duì)象的組成部分
- 是一種較強(qiáng)的關(guān)聯(lián)關(guān)系
- 兩個(gè)對(duì)象之間存在has a這樣的關(guān)系,一個(gè)對(duì)象作為另外一個(gè)對(duì)象的屬性存在
- 如汽車和輪胎-輪胎作為汽車的一個(gè)組成部分,輪胎和汽車都是可以單獨(dú)生產(chǎn)的,汽車也是可以隨意更換同等規(guī)格的輪胎
組合
- 當(dāng)一個(gè)對(duì)象包含了另一個(gè)對(duì)象時(shí),外部對(duì)象負(fù)責(zé)管理內(nèi)部對(duì)象的生命周期的情況
- 關(guān)聯(lián)關(guān)系中最為強(qiáng)烈的一種
- 內(nèi)部對(duì)象的創(chuàng)建由外部對(duì)象自己控制
- 外部對(duì)象不存在時(shí),內(nèi)部對(duì)象也不能存在
- 如電視和顯示器
域模型
- 域模型是面向?qū)ο蟮摹T诿嫦驅(qū)ο蟮男g(shù)語(yǔ)中,域模型也可稱為設(shè)計(jì)設(shè)計(jì)模型。域模型由以下內(nèi)容組成:
具有裝填和行為的域?qū)ο?/p>
域?qū)ο笾g的關(guān)系
- 關(guān)聯(lián)
- 依賴
- 聚集
- 一般化-泛華
關(guān)聯(lián)
一個(gè)用戶可以下多個(gè)訂單,也可以有一個(gè)訂單,一個(gè)用戶和訂單之間的關(guān)系就是關(guān)聯(lián)
從Order到Customer的關(guān)聯(lián),一個(gè)用戶可以定很多的訂單,是一個(gè)多對(duì)一的關(guān)聯(lián),怎樣Order關(guān)聯(lián)到用戶,需要在Order的類中建立Customer的成員變量。Order要能獲得Custormer的信息
同理,Customer到Order的關(guān)聯(lián),Customer中需要定義Order的成員變量
也可以實(shí)現(xiàn)相互關(guān)聯(lián),兩個(gè)對(duì)象中都有對(duì)方的成員變量。
依賴關(guān)系
BusinessService類依賴Customer類
在BusinessService類中有訪問(wèn)Customer類的防范,并且構(gòu)造Customer類的實(shí)例
聚集關(guān)系
- 聚集關(guān)系是指整體和部分之間的關(guān)系,在實(shí)體域?qū)ο笾g很常見(jiàn)
Person類和Hand類之間的聚集關(guān)系
一般化關(guān)系
- 一般化關(guān)系是指類之間的繼承關(guān)系
Employee類之間的繼承關(guān)系
說(shuō)明
關(guān)聯(lián) Association 依賴 Dependency 聚集 Aggregation 一般化 Generalization內(nèi)聚與耦合
- 內(nèi)聚-度量一個(gè)類獨(dú)立完成某項(xiàng)工作的能力
- 耦合-度量系統(tǒng)內(nèi)或系統(tǒng)之間依賴關(guān)系的復(fù)雜度
- 設(shè)計(jì)原則-增加內(nèi)聚,減少耦合
總結(jié)
以上是生活随笔為你收集整理的starUML--面向对象的设计过程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 作者:谢华美(1976-),男,就职于中
- 下一篇: cmake的使用-为什么要使用CMake