類(class)
描述一組共享相同職責,關係,操作,屬性和語義的物件
包(package)
將元素組織成組的通用機制
可以包含其他模型元素的模型元素
不提供行為
不完全封裝它們的內容
可能不容易替換
包有公共可見(public visibility)和私密可見(private visibiliy)兩種類,只有公共可見類能被別的包的類引用
子系統(subsystems)
完全封裝行為(內容)
用清晰的介面代表獨立能力(可重複使用)
模型多個實現變體提供行為
提供行為
很容易被替換
子系統可用於將系統劃分為可獨立部分
只要介面保持不變即可開發
部署在一組分布式計算節點上
改變而不破壞系統的其他部分
將系統劃分為可以對關鍵資源提供有限安全性的單元
代表設計中的現有產品或外部系統(例如元件)
介面(inte***ces)
介面類的名稱最前面為大寫i
根據其職責確定子系統的介面
為所有子系統確定一組候選介面
尋找介面之間的相似之處
定義介面依賴關係
將介面對映到子系統
定義介面指定的行為
打包介面
介面名稱
介面描述
操作定義
介面文件
分析類(analysis classes)
初步的類的設計
設計元素(design elements)
把乙個類分成多個類
組成乙個包
組成子系統
邊界類(boundary classes)
邊界類放置在單獨的包中
與功能相關的類打包的邊界類
確定類是否在功能上相關的標準
乙個類行為和/或結構的變化需要另一類的變化
去除乙個類會影響其他班級
兩個物件與大量訊息互動或者俱有複雜的相互通訊
如果邊界類的功能是呈現實體類,則邊界類可以在功能上與特定實體類相關
兩個類與同乙個角色的變化互動或受其影響
兩個類彼此之間有關係
乙個類建立另乙個類的例項
確定兩個類不應該放在同乙個包中的標準
與不同參與者相關的兩個類不應放置在同乙個包中
乙個可選的和乙個強制的類不應該放在同乙個包中
包不能交叉耦合(cross-coupled)
低層的包不能依賴於高層的包
依賴關係不能跳過層級去依賴
不然兩個包相互依賴
辨別設計元素步驟
識別類和子系統
識別子系統介面
識別重用機會
更新設計模型的組織
檢查點尋找類似的介面
修改新的介面以改善適合度
用候選介面替換候選介面
將候選子系統對映到現有元件
層級考慮
可見性(能夠看見或被看見的狀態)
僅在當前層和下面的依賴關係
波動性(不可預測性)
受需求變化影響的上層
受環境變化影響的較低層
概論更低層的更多抽像模型元素層數
小系統:3-4層
複雜系統:5-7層
包有公共可見(public visibility)和私密可見(private visibiliy)兩種類,只有公共可見類能被別的包的類引用
面試題 類載入子系統
類載入器子系統的作用 類載入器子系統負責從檔案系統或者網路中載入class檔案,class檔案在檔案開頭有特定的檔案標識,classloader只負責載入class檔案,載入的類資訊存放在方法區中,除了類的資訊外,方法區中還會存放執行時常量池資訊,可能還包括字串字面量和數字常量。類載入過程 驗證準備...
輸入子系統
驅動函式操作步驟 在初始化函式中 1.分配乙個input dev結構體 struct input dev buttons dev buttons dev input allocate device 2.設定 2.1 能產生哪類事件 set bit ev key,buttons dev evbit s...
中斷子系統
linux kernel的中斷子系統之 一 綜述 linux kernel的中斷子系統之 二 irq domain介紹 linux kernel的中斷子系統之 三 irq number和中斷描述符 linux kernel的中斷子系統之 四 high level irq event handler ...