看圖說文——面向對象面試總結,什麼是面向對象?

網上關於介紹面向對象的博客很多,但是大多數是博主們自己的理解。小編正好買了機械工業出版社《面向對象分析與設計》,相信書面的學習能讓你對“面向對象”有不同理解。

目錄:

1. 傳統軟件開發的問題(瞭解)

    1.1 功能分解法

    1.2 結構化方法

    1.3 信息建模方法

    1.4 小結

2. 面向對象的基本思想

    2.1 面向對象概述

    2.2 面向對象基本思想

    2.3 面向對象基本原則

    2.4 統一建模語言

--------------------------------------------------------------------------------------------

1. 傳統軟件開發的問題(發展史介紹,可以只看紅字)

1.1 功能分解法

這是一種早期的開發方法,它是以系統需要提供的功能爲中心來開發系統的。基本思想是:首先定義頂層功能,然後把功能分解爲子功能,同時定義功能之間的接口。對較大的子功能還要進一步分解,直到給出名學定義,進而根據功能設計數據結構和算法。

功能分解法以系統需要提供的功能爲中心來組織系統,也提出模塊化的思想,在當時很受歡迎。但是該方法開始容易深入難,剛開始的功能劃分很直接,但功能和功能接口這些系統成分卻無法直接映射問題域(實際問題)中的事物,對於需求變化的適應能力也很差,需求的變化一定導致功能模塊的變化,從而引起接口變化和其它模塊變化,造成全局性的影響。

1.2 結構化方法

結構化方法包括結構化需求分析、設計、編程、測試方法等。使用數據流圖、加工說明和數據字典構造需求分析模型。其總體設計部分要給出被建系統的模塊結構,詳細設計部分要爲各模塊提供關於算法的詳細描述。

結構化方法更強調對問題域的分析,但使用的概念仍然不能直接映射到問題域中的事務。需求的變化往往會引起相應的加工和數據流的變化。對於功能穩定的應用領域,如某些科學計算,上述方法適用。但對於衆多的領域是不適用的。

1.3 信息建模方法

信息建模方法是在實體聯繫模型(ER模型)的基礎上發展起來的。該方法以成爲實體的數據集合作爲系統的構造塊,以數據結構爲中心來開發軟件。因爲有相當多的人認爲實體是穩定的,並且實體聯繫模型由相當好的理論基礎,所以當時被廣泛採用。

但其弱點也很明顯,因爲它僅對問題域中事物的數據方面進行了建模,而對其功能行爲在模型中沒有體現。

1.4 小結

包括上述方法在內的所有傳統方法都只注重系統的一個或少數幾個方面,建模能力很弱,並且都沒有較強的描述系統的動態行爲的能力。

面向對象方法是在傳統方法的基礎上發展而來。並且面向對象從多維度把建立的模型與問題域進行直接映射,在整個開發中均採用一致的概念和表示法,採用諸如封裝、繼承和消息機制等使得問題域的複雜性在模型上得以控制。

2. 面向對象的基本思想

2.1 面向對象概述

面向對象不僅是一些具體的軟件開發技術和策略,也是一整套看待軟件系統與現實世界關係的理論。面向對象方法解決問題的思路是從現實世界中的客觀對象(如人和事物)入手,儘量運用人類的自然思維方式從不同的抽象層次和方面來構造軟件系統,與傳統的方法有所不同。特別是,面向對象把一切看成是對象。

人們已達成共識,面向對象方法是一種運用對象、類、繼承、聚合、關聯、消息、封裝、多態等概念和原則來構造軟件系統的開發方法。以下詳細闡述其基本思想。

2.2 面向對象基本思想

① 客觀世界中的事務都是對象,對象直接存在一定的關係;

② 用對象的屬性表示事物的數據特徵,用對象的操作表示事物的行爲特徵;

③ 對象把它的屬性和操作結合在一起,成爲獨立不可分的實體,並且對外屏蔽它的內部細節;

④ 通過抽象對事物進行分類;

⑤ 複雜對象可以用簡單對象作爲構成部分;

⑥ 通過在不同程度上使用抽象原則,可以得到較一般和特殊的類。特殊類繼承一般類的屬性與操作。(比如哺乳動物是一般類,鯨魚作爲特殊類,除了繼承哺乳動物,還可以添加游泳的方法);

⑦ 對象之間通過消息進行通信,從而實現對象之間的動態聯繫;

⑧ 通過關聯表達類之間的靜態關係(比如教師和同學,在UML語言中用一根線連起來) 

以下是面向對象思想的描述圖:

2.3 面向對象基本原則

篇幅過長,簡要介紹。

包括①抽象、②分類、③封裝、④消息通信(直接發給特定對象,其規格包括消息名、入口參數、返回參數)、⑤多態性、⑥行爲分析(關聯、繼承、聚合)、⑦複雜性控制(分包,把模型元素組織成不同粒度的系統單位)

2.4 統一建模語言

這裏只做簡要介紹,詳細需要大家自己學習。

Unified Modeling Language (UML)又稱統一建模語言或標準建模語言,是始於1997年一個OMG標準,它是一個支持模型化和軟件系統開發的圖形化語言,爲軟件開發的所有階段提供模型化和可視化支持,包括由需求分析到規格,到構造和配置。 面向對象的分析與設計(OOA&D,OOAD)方法的發展在80年代末至90年代中出現了一個高潮,UML是這個高潮的產物。它不僅統一了Booch、Rumbaugh和Jacobson的表示方法,而且對其作了進一步的發展,並最終統一爲大衆所接受的標準建模語言

---------------------------------------------------------------------------------------------

畫圖寫文都花了挺長時間,各位看官滿意的話還請點個贊!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章