把系統分為各個功能不同的板塊,以電腦主機為例,高聚合就是指主板,cup等內的各種零件之間的緊密聯繫,松耦合就是指主板與cpu的連接,主板與顯卡的連接,主板與電源的連接。把顯卡,主板內的零件看作小號零件,這些小號零件組成了大號零件“顯卡”和“主板”,小號零件之間的連接相比大號零件之間的連接更緊密。緊密 ...
把系統分為各個功能不同的板塊,以電腦主機為例,高聚合就是指主板,cup等內的各種零件之間的緊密聯繫,松耦合就是指主板與cpu的連接,主板與顯卡的連接,主板與電源的連接。把顯卡,主板內的零件看作小號零件,這些小號零件組成了大號零件“顯卡”和“主板”,小號零件之間的連接相比大號零件之間的連接更緊密。緊密的聯繫可以發揮出更高的性能(高聚合-高“性能高”,聚合-“聯繫緊密”),不那麼緊密的聯繫便於靈活使用(松耦合-容易拼接的性能不錯的介面)。簡潔是常常提到的,相比說一大堆,高聚合,松耦合。有沒有言簡意賅?軟體系統中的該發揮高性能的就弄成高聚合板塊,需要更高的自由度的就考慮開一個松耦合介面,這就是我暫時的理解了。
以下是關於模塊的部分編寫原則
抽象原則(抽象:從具體事物抽出、概括出它們共同的方面、本質屬性與關係等,而將個別的、非本質的方面、屬性與關係捨棄,這種思維過程,稱為抽象。--引用於百度百科)
使用簡潔精確的描述刻畫模塊的行為(或者功能),這種遵循抽象原則的模塊刻畫方式是“契約介面”(contractual interface)
我們把一號模塊看成是“服務提供者”,把使用一號模塊的服務的其他模塊(例如2號模塊,3號模塊)看作是1號模塊的“客戶”。把契約介面看成是服務提供者與客戶之間的“服務約定”。服務約定只需要描述能夠提供“什麼”服務,而不是服務是“怎樣”提供的。因此,也許提供的服務很複雜但也只是需要一份簡單的服務契約就可以。由於具有簡單的服務約定(服務契約),同是服務提供者保證遵守服務約定,因此客戶要想使用複雜的服務,只需要理解簡單的契約約定。約定介面允許客戶使用服務而不需要關心服務的複雜性。也就是模塊的複雜性被隱藏了。
就像電話,不需要瞭解是怎麼製作的就能輕鬆使用。
封裝原則
實現模塊功能的同時讓模塊約定介面與模塊互不接觸,以及對模塊的客戶來說是不可見的
也叫信息隱藏原則。
封裝是為了減少模塊間的耦合度,客戶知道的模塊實現的細節越少,模塊和他的客戶間的耦合度就越低。封裝的一個重要好處是,如果客戶只知道約定介面,就可以在不影響客戶的情況下修改實現,條件是契約(約定)介面保持一致。
電話服務為例,過去,信號是以模擬模式傳輸的,現在信號是以數字模式加密傳輸。儘管電話服務的實現方式改變了,但契約介面仍然保持一致。對電話用戶來說,他們收到的唯一影響就是能夠享受到更好的通話質量和更安全的通話傳輸。
——我的學習記錄