統一建模語言是一種直觀化、明確化、構建和文件化軟體系統產物的通用視覺化建模語言。捕捉被建構系統的有關決策和理解,用來理解、設計、瀏覽、配置、維護以及控制系統的資訊。建模的目的模型可以幫助我們按照實際情況對系統進行視覺化;模型允許我們詳細說明系統;模型給出了我們乙個指導我們構造系統的模板;模型對我們做出的決策進行模板化;
它的第乙個且最重要的目標:uml是所有建模人員可以使用的通用建模語言。它基於許多計算機團體的共識,是一種非私有的語言。uml不是完整的開發方法,它不包括逐步的開發流程,但它包括了所有的必要概念。它的最後乙個目標是在能對眾多系統建模的同時 盡可能的簡潔。
3.uml概念範圍
(1)靜態結構
(2)動態行為
(3)實現構造
(4)模型組織
(5)擴充套件機制
(1)uml基本構造快
事物:行為事物
結構事物
分組事物
注釋事物
關係:依賴關係
關聯關係
泛化關係
實現關係
圖:類圖
物件圖用例圖
順序圖協作圖
狀態圖活**
元件圖部署圖
(2)uml規則
命名、範圍、可見性、完整性、執行
(3)uml公共機制
規格說明、修飾、通用劃分、擴充套件機制,其中擴充套件機制是對uml元素的擴充套件, 包括約束、構造型別和標記值。
設計模式描述了軟體過程中的某一類常建問題的一般性解決方案。物件導向的三大特徵。封裝:隱藏內部實現、繼承:復用現有**、多型:改寫物件行為。
應該便於程式的公升級和維護,盡可能降低各個類之間的耦合度,使各個類相對獨立,應從**復用的角度去設計系統,避免重複造輪子。
2.1單一職能原則(srp):
每乙個類實現的功能和作用要單一,比如實體類實現的是單純的屬性和get,set方法,是為了能生成乙個純淨的類。實現邏輯操作的要重新生成乙個類,不要在實體類中給出複雜業務邏輯的操作。呼叫到業務邏輯的服務操作也要重新生成乙個類,邊界盡量清晰。
2.2.黎克特制替換原則:
講的是透明繼承的設計理念,如果不是使用覆蓋(override)刻意改寫父類方法實現的話,子類物件必需能夠無縫透明的替代父類物件。
子類可以繼承父類的私有方法以外的所有方法和非私有的屬性,重寫可以覆蓋掉父類中同名同引數的方法。
子類必須完全實現父類的方法。
子類可以有自己獨立的屬性和方法。
覆蓋或實現父類的方法時輸入引數可能會被放大。(如果子類給的引數範圍大於父類,不會被執行到,要求子類給引數型別必須等於父類)。
覆蓋或者實現父類的方法時輸出可以被縮小範圍。(父類的返回引數型別必須大 於子類)
具體方法是:子類使用前置條件(形參)相同的override方法覆蓋父類方法,或使用前置條件(繼承鏈上)同級或更寬鬆(父類級別)的overload方法。
2.3.依賴倒置的原則
使用介面,就是面向介面程式設計。需要注意的是使用建構函式傳遞物件、使用setter方法傳遞和使用方法簽名的形參傳遞,書上寫的這三種分別稱為建構函式注入、setter依賴注入和介面注入。
2.4.介面隔離
介面實現的作用越簡單越好,最好是只針對某一項相同物件的。
2.5.迪公尺特法則:
類之間的呼叫,最好不要知道被呼叫者中其他資訊,只要知道對應的介面即可。具體如何實現不需要知道,或者越少越好。
2.6.開閉原則:
使用extends(繼承)的方法實現原有的類的方法以及擴充套件其中的應用,應用去系統公升級,替換實現類即可,不需要太多變動。書上提到抽象約束:實現類不允許出現介面或抽象類中不存在的public方法;抽象層應保持穩定,一旦確定即不允許修改。
第二次作業
execise02 1.查詢85年以後出生的學生姓名 性別和出生日期 2.列表顯示所有可能的學生選課組合 學號 課程號 3.查詢1 2 4班中陳姓同學的資訊 4.查詢所有及格的學生姓名 所選課程名及所得分數 5.統計各門課程的及格人數 課程編號 課程名 及格人數 6.統計各門課程的總人數 及格人數和...
第二次作業
第一題 p1 1 遞迴寫法,效率低 include 1.寫乙個函式返回引數值為1的個數 比如 15 0000 1111 4個1 程式原型 int count one bits unsigned int value int fuc int x else return 0 void mainp1 p1 ...
第二次作業
檔名稱 516.cpp 作 者 闕文榮 完成日期 2016 年 3 月 11 日 版 本 號 v1.1 對任務及求解方法的描述部分 用while語句控制輸出 輸入描述 略 問題描述 現在北京有一套房子,200萬,假設房價每年 10 乙個軟體工程師每年固定能賺40萬。他想買這套房子,多大的 率能夠忍受...