泛化(
generalization)
圖表1
泛化在上圖中,空心的三角表示繼承關係(類繼承),在
uml的術語中,這種關係被稱為泛化(
generalization
)。person(人)
是基類,
teacher(教師)
、student(學生)
、guest(來賓)
是子類。
若在邏輯上b是
a的「一種」,並且
a的所有功能和屬性對
b而言都有意義,則允許b繼承
a的功能和屬性。
例如,教師是人,
teacher
是person
的「一種」(
a kind of
)。那麼類
teacher
可以從類
person
派生(繼承)。
如果a是基類,b是
a的派生類,那麼
b將繼承
a的資料和函式。
如果類a和類
b毫不相關,不可以為了使
b的功能更多些而讓b繼承
a的功能和屬性。
若在邏輯上b是
a的「一種」(
a kind of
),則允許b繼承
a的功能和屬性。
聚合(組合)
圖表2
組合若在邏輯上a是
b的「一部分」(
a part of
),則不允許b從
a派生,而是要用
a和其它東西組合出b。
例如,眼(
eye)、鼻(
nose
)、口(
mouth
)、耳(
ear)是頭(
head
)的一部分,所以類
head
應該由類
eye、
nose
、mouth
、ear
組合而成,不是派生(繼承)而成。
聚合的型別分為無、共享(聚合
)、復合(組合
)三類。
聚合(aggregation)
圖表3
共享上面圖中,有乙個菱形(空心)表示聚合(
aggregation
)(聚合型別為共享),聚合的意義表示
has-a
關係。聚合是一種相對鬆散的關係,聚合類
b不需要對被聚合的類
a負責。
組合(composition)
圖表4
復合這幅圖與上面的唯一區別是菱形為實心的,它代表了一種更為堅固的關係
——組合(
composition
)(聚合型別為復合)。組合表示的關係也是
has-a
,不過在這裡,
a的生命期受
b控制。即
a會隨著
b的建立而建立,隨
b的消亡而消亡。
依賴(dependency)
圖表5
依賴這裡b與
a的關係只是一種依賴
(dependency)
關係,這種關係表明,如果類
a被修改,那麼類
b會受到影響。
歡迎您使用http://blogmove.cn提供的"部落格搬家"和"博文三窟"服務.
物件導向和面向過程講解
物件導向 把構成這個問題的事物分成乙個的物件,然後呼叫物件 面向過程 分析出實現這個問題所需要的步驟,然後乙個步驟乙個步驟的時間,然後從上往下把每個步驟 一起。例子說明 洗衣服 面向過程 把衣服放進盆子裡 到洗液 加水 洗衣服 倒髒水 加水 洗衣服 擰乾 晾曬 物件導向 加水 洗衣服 倒髒水 加水 ...
物件導向2
6 static關鍵字 用法 是乙個修飾符,用於修飾成員 當成員被靜態修飾後,就多了乙個呼叫方式,除了可以被物件呼叫外,還可以直接被類名呼叫。類名.靜態成員 static特點 static成員 也叫 類變數 1 隨著類的載入而載入 也就是說 靜態會隨著類的消失而消失。說明它的生命週期最長 2 優先於...
物件導向2
一.昨日內容回顧 1.匿名函式 lambda 引數 返回值 def chi return 飽了 lambda 飽了 2.sorted 排序 sorted iterable,key function,reverse false 3.filter 篩選 filter function,iterable ...