概要
oo所要解決的事情首先是找出事物的共性、分離事物,然後是抽象不同事物的共同行為模型,通過行為來聚合某些事物,通過某些機制來簡化事物之間的關聯。這也就是
oo方**中的普遍性和抽象性。本文簡單地描述了
oo的普遍性和抽象性。
oo,抽象性,具體
,普遍性目錄
概述
...
1
oo
基本特點
...
1
oo
普遍性...
2
oo
抽象性...
2
結束語
...
2
當軟體越來越複雜,面向過程的方**無以承受這種複雜的時候,物件導向
(oo)
的方**出現了。軟體的複雜度可表現為兩個方面,乙個是事物的繁多,二個是事物之間的聯絡錯綜複雜。
oo所要解決的事情首先是找出這些事物的共性、分離事物,然後是抽象不同事物的共同行為模型,通過行為來聚合某些事物,通過某些機制來簡化事物之間的關聯。這也就是
oo方**中的普遍性和抽象性。
oo是一種視事物為程式世界中的物件的方**,它使用
generalization
和abstraction
來歸納和抽象事物的本質特徵和共同行為。
oo有三個基本特點,那就是封裝、繼承、多型。封裝是對事物的變化的封裝,這種變化是使軟體趨於複雜的根本原因;繼承是處理事物的普遍性和特殊性的一種機制,它更多的注重的是對事物的固有屬性的處理;多型用於處理同類事物的不同的行為特徵。
世界中的事物具有普遍性和特殊性。如哲學中提到的「黑馬和白馬都是馬「,在這句話中,」馬「相對」黑馬「或
/和」白馬「具有普遍性,而」黑馬「或
/和」白馬「相對「馬」則是特殊的。因此使用
oo分析某個系統的時候,我們需要找出這種普遍和特殊。在一般的情況下,特殊的事物相對普遍的事物的區別在於本質特徵的不同。如「馬「具有」顏色「這一本質特徵,」黑馬「和」白馬「就是「顏色」特殊化了的馬。這也就是
oo中的繼承。因此,繼承通過事物的本質特徵來區分普遍性和特殊性的事物,這種本質特徵包括事物的固有屬性也包括事物的固有行為。從某種程度上來說,這也是一種抽象。不過這種抽象是基於事物的本質特徵的。在oo
的世界中,抽象上必不可少的,它往往表現為對事物行為的抽象。而這種行為的抽象主要表現在兩個方面:同類事物的不同行為的抽象;不同事物的相同行為的抽象。同類事物的不同的行為特徵,我們很容易進行區分,因為人們一直都在關注這一點。不同事物的相同行為往往都是很隱蔽的,需要我們去努力挖掘,比如說卵生動物都是產「卵」來繁育後代的,這是動物學家通過很久的探索和研究才得出的結論。
因為事物的行為可能因為這樣和那樣的原因,它們很容易發生變化。所以我們需要通過
oo的封裝來隔離這種變化。「變化」是乙個開放性的詞語,它可以用「形容詞」來修飾,也可以給它新增「賓語」。往往,在解決具體問題的時候,我們談論的變化都是具體的。而這種具體的變化是存在共性的,因為它們都是變化。
因此,我們需要通過抽象事物的不同行為,通過
oo的封裝來隔離這些變化。而對於變化的普遍性和特殊性,我們可以使用
oo的繼承來進行處理。
C C 類的設計 抽象性
抽象性 每個c 類 不論可重用與否,都應該表示某種抽象,當設計乙個類的時候,我們要做的第一件事情就是定義類所要表示的抽象。一旦定義了類要表述的抽象,我們就可以有代表性地用某種方法來實現這個抽象。將類的抽象從它的實現分開是很有裨益的 第一 簡化了類的抽象,當對類進行抽象的時候,我們會忽略對當前設計目的...
遊戲想法雜記 網遊的單調性,特殊性,普遍性
這幾天想寫一些筆記,只是想記錄一下自己想法,至於是什麼原因,我想只是一種隨意的想法。最近玩了幾款遊戲,倩女幽魂,大唐無雙,天下貳,不得不說,這幾款遊戲都是花費了不少人去製作和完成,蘿蔔青菜各有所愛,要是魔獸不收費,我想都會去嘗試玩一些暴雪的遊戲。可能網遊大部分模式都差不多,做任務,打副本,搞活動等等...
遊戲想法雜記 網遊的單調性,特殊性,普遍性
這幾天想寫一些筆記,只是想記錄一下自己想法,至於是什麼原因,我想只是一種隨意的想法。最近玩了幾款遊戲,倩女幽魂,大唐無雙,天下貳,不得不說,這幾款遊戲都是花費了不少人去製作和完成,蘿蔔青菜各有所愛,要是魔獸不收費,我想都會去嘗試玩一些暴雪的遊戲。可能網遊大部分模式都差不多,做任務,打副本,搞活動等等...