設計良好的模塊,應該是層次化的。層次化不是天然而然的,而是須要精心的設計。設計一個層次化的組件,能夠從下面幾方面來考慮:安全
- 切分功能,每一個組件專心作一件事。
- 識別功能之間的依賴,避免雙向依賴。
- 識別出最小的公理系統(內核組件),而後在這個千米系統之上創建定理系統(基礎服務組件),最後再創建經常使用的推論(應用組件)。
- 分析哪些會改變,哪些不會改變。不變部分固化在組件中,可能會改變的部分抽象成接口,以便擴展。
- 考慮默認值和默認擴展。默認值和默認擴展應該是最安全、最經常使用的選擇。對於默認值和默認擴展,用戶在使用時不須要額外的配置。