面向对象模型的四种核心技术
1、分類
????類是具有相同屬性結構和操作方法的對象的集合,屬于同一類的對象具有相同的屬性結構和操作方法。分類是把一組具有相同屬性結構和操作方法的對象歸納或映射為一個公共類的過程。對象和類的關系是“實例”(instance-of)的關系。
????同一個類中的若干個對象,用于類中所有對象的操作都是相同的。屬性結構即屬性的表現形式相同,但它們具有不同的屬性值。所以,在面向對象的數據庫中,只需對每個類定義一組操作,供該類中的每個對象使用,而類中每一個對象的屬性值要分別存儲,因為每個對象的屬性值是不完全相同的。例如,在面向對象的地理數據模型中,城鎮建筑可分為行政區、商業區、住宅區、文化區等若干個類。以住宅區類而論,每棟住宅作為對象都有門牌號、地址、電話號碼等相同的屬性結構,但具體的門牌號、地址、電話號碼等是各不相同的。當然,對它們的操作方法如查詢等都是相同的。
2、概括
????概括是把幾個類中某些具有部分公共特征的屬性和操作方法抽象出來,形成一個更高層次、更具一般性的超類的過程。子類和超類用來表示概括的特征,表明它們之間的關系是“即是”(is—a)關系,子類是超類的一個特例。
????作為構成超類的子類還可以進一步分類,一個類可能是超類的子類,同時也可能是幾個子類的超類。所以,概括可能有任意多層次。例如,建筑物是住宅的超類,住宅是建筑物的子類,但如果把住宅的概括延伸到城市住宅和農村住宅,則住宅又是城市住宅和農村住宅的超類。
????概括技術的采用避免了說明和存儲上的大量冗余,因為住宅地址、門牌號、電話號碼等是“住宅”類的實例(屬性),同時也是它的超類“建筑物”的實例(屬性)。當然,這需要一種能自動地從超類的屬性和操作中獲取子類對象的屬性和操作的機制。
3、聚集
????聚集是將幾個不同類的對象組合成一個更高級的復合對象的過程。術語“復合對象”用來描述更高層次的對象,“部分”或“成分”是復合對象的組成部分,“成分”與“復合對象”的關系是“部分”(parts—of)的關系,反之“復合對象”與“成分”的關系是“組成”的關系。例如,醫院由醫護人員、病人、門診部、住院部、道路等聚集而成。
????每個不同屬性的對象是復合對象的一個部分,它們有自己的屬性數據和操作方法,這些是不能為復合對象所公用的,但復合對象可以從它們那里派生得到一些信息。復合對象有自己的屬性值和操作,它只從具有不同屬性的對象中提取部分屬性值,且一般不繼承子類對象的操作。這就是說,復合對象的操作與其成分的操作是不兼容的。
4、聯合
????聯合是將同一類對象中的幾個具有部分相同屬性值的對象組合起來,形成一個更高水平的集合對象的過程。術語“集合對象”描述由聯合而構成的更高水平的對象,有聯合關系的對象稱為成員,“成員”與“集合對象”的關系是“成員”(member—of)的關系。
????在聯合中,強調的是整個集合對象的特征,而忽略成員對象的具體細節。集合對象通過其成員對象產生集合數據結構,集合對象的操作由其成員對象的操作組成。例如,一個農場主有三個水塘,它們使用同樣的養殖方法,養殖同樣的水產品,由于農場主、養殖方法和養殖水產品等三個屬性都相同,故可以聯合成一個包含這三個屬性的集合對象。
????聯合與概括在概念上不同。概括是對類進行抽象概括;而聯合是對屬于同一類的對象進行抽象聯合。聯合有點類似于聚集,所以在許多文獻中將聯合的概念附在聚集的概念中,都使用傳播工具提取對象的屬性值。
轉載于:https://www.cnblogs.com/Athrun/archive/2007/03/15/675436.html
總結
以上是生活随笔為你收集整理的面向对象模型的四种核心技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “身与粪壤并”下一句是什么
- 下一篇: 规划文章的“显示效果”,还是太多犹豫。