背景
我們執着於面《向對象編程》,而多數情況我們都在使用《面向類型編程》,今天簡單快速的回顧一下對象的之間的關系。
先談談類型之間的關系
類型之間的依賴,這里進一步划分為兩類:
- 顯式依賴:在參數中顯式的表達了依賴。
- 隱式依賴:沒有在參數中顯式的表達依賴,直接在方法中創建了某個類型的實例,然后使用。
類型之間的關聯從某種程度上來講也屬於一種依賴,在這個維度講,也可以將其划分為兩類:
- 顯式依賴:使用構造方法或方法注入關聯。
- 隱式依賴:沒有使用構造方法或方法注入關聯,直接在構造方法中創建了某個類型的實例,然后賦值給關聯。
集合關聯屬於整體和個體的關系,復合關聯屬於整體和部分的關系,兩者的區別在於語義上,技術上表現非常一致,從DDD上來講,復合關聯的雙方屬於同一個聚合,集合關聯的雙方屬於兩個聚合。
實現和繼承會影響運行時消息的發送。
對象之間的關系
對象之間只有依賴和關聯。
為什么需要依賴和關聯
行為需要數據,數據表現為依賴和關聯。
示例
需求:a.m1先執行,然后執行b.m2。
注意:這里只給出了常見的實現方式,還會有其他形式,如:采用Event的方式。
備注
上邊的草圖是開會期間畫的。