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