大話設計模式

首先,看動物矩形框,它代表一個類(Class)。類圖分三層,第一層顯示類的名稱,如果是抽象類,則就用斜體顯示。第二層是類的特性,通常就是字段和屬性。第三層是類的操作,通常是方法或行為。前面的符號,+ 表示public,- 表示private,# 表示protected。
右下角的飛翔,它表示一個接口圖,與類圖的區別主要是頂端的<>顯示。第一行是接口名稱,第二行是接口方法。接口還有另一種表示方法,俗稱棒棒糖表示法。唐老鴨是能講人話的鴨子,實現了講人話的接口。
接下來的是類與類,類與接口之間的關系了。首先注意動物、鳥、鴨、唐老鴨之間的關系符號。它們都是繼承的關系,繼承關系用空心三角形 + 實線來表示的。
上述所列舉的幾種鳥中,大雁最能飛,讓它實現了飛翔接口。實現接口用空心三角形 + 虛線來表示。

企鵝和氣候兩個類,企鵝是很特別的鳥,會游不會飛。更重要的是,它與氣候有很大的關聯。我們不去討論為什么北極沒有企鵝,為什么它們要每年長途跋涉。總之,企鵝需要知道氣候的變化,需要了解氣候規律。當一個類知道另一個類時,可以用關聯(association)。關聯關系用實線箭頭來表示。

再來看大雁和雁群這兩個類,大雁是群居動物,每只大雁都是屬于一個雁群,一個雁群可以有多只大雁。所以它們之間就滿足聚合(Aggregation)關系。聚合表示一種弱的擁有關系,體現的是A對象可以包含B對象,但B對象不是A對象的一部分。聚合關系用空心的菱形 + 實線箭頭來表示。

組合(Composition)是一種強的擁有關系,體現了嚴格的部分和整體的關系,部分和整體的生命周期一樣。在這里鳥和其翅膀就是組合關系,因為它們是部分和整體的關系,并且翅膀和鳥的生命周期是相同的。組合關系用實習的菱形 + 實線箭頭來表示。另外,你會注意到合成關系的連線兩端還有一個數字1和數字2,這被稱為基數。表明這一端的類可以有幾個實例,很顯然,一個鳥應該有兩只翅膀。如果一個類可能有無數個實例,則就是n來表示。關系關系、聚合關系也可以有基數的

一個類可能有無數個實例,則就是n來表示。關系關系、聚合關系也可以有基數的。
動物的幾大特征,比如有新陳代謝,能繁殖。而動物要有生命力,需要氧氣、水以及食物等。也就是說,動物依賴于氧氣和水。他們之間是依賴關系(Dependency),用虛線箭頭來表示。

- 空白目錄
- 安裝
- linux下安裝nginx
- linux下安裝php
- 調試
- windows 安裝wamp
- 常用源
- 類型
- Boolean布爾類型
- Integer整型
- Float浮點型
- String字符串
- Array數組
- Object對象
- Resource資源類型
- NULL
- Callback/Callable類型
- 類型轉換
- 變量
- 預定義變量
- 常量
- 魔術常量(預定義常量)
- 語法
- 運算符
- 流程控制
- 條件語句
- if
- else
- else if/elseif
- switch
- 循環語句
- while
- do-while
- for
- foreach
- break
- return
- continue
- require
- include
- require_once
- include_once
- 函數
- 內置函數
- 匿名函數
- 自定義函數
- 類與對象
- 屬性
- 聲明
- public
- protected
- private
- 類常量
- 方法
- 魔術方法
- __construct()
- __destruct()
- __call()
- __callStatic()
- __get()
- __set()
- __isset()
- __unset()
- __sleep()
- __wakeup()
- __toString()
- __invoke()
- __set_state()
- __clone()
- __debugInfo()
- 方法的調用
- ->(對象運算符)
- ::(范圍解析操作符)
- 設計模式
- 依賴注入
- call_user_func
- is_callable (
- 創建型模式
- 工廠方法模式
- 抽象工廠模式
- 單例模式
- 建造者模式
- 原型模式
- 結構性模式
- 適配器模式
- 裝飾器模式
- 代理模式
- 外觀模式
- 橋接模式
- 組合模式
- 享元模式
- 行為型模式
- 策略模式
- 模板方法模式
- 觀察者模式
- 迭代子模式
- 責任鏈模式
- 命令模式
- 備忘錄模式
- 訪問者模式
- 中介者模式
- 解釋器模式
- 六大原則
- uml語言
- 反射
- 類型約束
- 調試
- lamp
- lnmp
- composer
- 工作常用
- UML圖
- 常見問題