OOAD初識

OOAD —> OOA OOD

OOA 面向對象分析

OO :軟件工程技術,應用在軟件開發的調研,分析,設計,編碼,升級,擴展,測試等各個環節,並使用到大量的方 法,理論,原則,模式,工具,語言志在提高軟件質量的綜合技術。

OO:繼承,封裝,多態
繼承

優點
1: 複用
2: 依賴於父類而又不侷限於父類的表現— 子類可以對父類進行擴展
3:可以從某種意義上增加代碼的靈活度《相對性》
缺點
1: 高耦合(當父類的敞亮,變量,方法被修改時,必需要考慮子類的修改)
2:繼承是入侵性的(只要繼承,就必須擁有父類的所有屬性和方法)
3: 降低了代碼的靈活性(子類擁有了父類的屬性方法,會增多約束)《相對性》

多態:同一類域的不同對象在處理同一行爲的操作時,有不同的表現方式

類與類的關係:

繼承
實現
依賴:(組合,聚合)
    具有偶然性,臨時性,非常弱的。(短暫性的使用)稱爲弱依賴;
    與類共生共滅,稱爲強依賴

    class A{
        B b;
        public A(){
            b = new B();  // 組合關係
        }

        public void setB(B b){  //聚合關係
            this.b = b;
        }
    }
    class B{}

Abstract class && interface

設計角度:
    1:避免多繼承
    2:interface  <——功能  abstract:屬性更像是一個模板
怎麼選擇?
    1 :思想
    2:根據問題域選擇

————————————————————————————————————

OOA:面向對象分析 (需求與初始分析,建模)

背景調研:特性分析
需求確認:列出需求
風險規避:1:規避重複 2:概念模糊 3:技術實現
靜態分析: UML  原型(axure工具) ———> (前面屬於分析,後面是設計)效果圖 ——>切圖———>編碼

OOD 面向對象設計:(OO設計原則與模式,建模,系統設計)設計原則 , 設計模式

設計原則:

單一職責:類的職責要單一,不能將太多的職責放在一個類中。
里氏替換:在軟件系統中,一個可以接受基類對象的地方必然可以接受一個子類對象。
開閉原則:軟件實體對擴展是開放的,但對修改是關閉,即在不修改一個軟件實體的基礎上去擴展其功能。
依賴反轉原則:要針對抽象層編程,而不要針對具體類編程。
接口隔離原則:使用多個專門的接口來取代一個統一的接口。
合成複用原則:在系統中應該儘量多使用組合和聚合關聯關係,儘量少使用甚至不使用繼承關係。
迪米特法則: 一個軟件實體對其他實體的引用越少越好,或者說如果兩個類不必彼此直接通信,那麼這兩個 類就不應當發生直接的相互作用,而是通過引入一個第三者發生間接交互

維護性低的軟件設計通常由於下面4個原因造成:

1:過於僵硬
2:過於脆弱
3:複用率低
4:黏度過高

好的系統設計應該具備以下三個性質

1: 可擴展性
2 :靈活性
3 :可插入性

定義OOA階段

分析階段主要解決以下問題

1: 建立針對業務問題域的清晰視圖。
2:列出系統必須要完成的核心人物。
3:針對問題域建立公共詞彙表。
4:列出針對此問題域的最佳解決方案。
此階段要解決的核心問題是“將要做什麼”?

定義OOD階段

1:如何解決具體業務問題。
2:引入系統工作所需要的支持元素。
3:定義系統的實現策略。
此階段要解決的核心問題是"怎麼做"?

OOP的主要特徵

1:抽象
2:封裝
3:繼承
4:多態
5:關聯
6:聚合
7:組合
8:內聚和耦合

開發過程概念

1:傳統開發過程----->瀑布模型
    需求 分析 設計 實現 測試~
2:統一軟件開發過程(usdp)
3:Universal Process(通用流程)

OOAD的開發過程

1:大項目分解爲一些子項目。
2:使用UML工具。
3:統一軟件開發過程是一個迭代,遞增的開發過程。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章