體系結構設計
體系結構設計
體系結構設計,是對複雜事物的一種抽象。
體系結構是對複雜事物的一種抽象。良好的體系結構是普遍適用的,它可以高效地處理多種多樣的個體需求。一提起“房子”,我們的腦中馬上就會出現房子的印象(而不是地洞的印象)。“房子”是人們對住宿或辦公環境的一種抽象。不論是辦公樓還是民房,同一類建築物(甚至不同類的建築物)之間都具有非常相似的體系結構和構造方式。如果13億中國人民每個人都要用特別的方式構造奇異的房子,那麼960萬平方公里的土地將會變得千瘡百孔,終日不得安寧。
體系結構在一定的時間內保持穩定。只有在穩定的環境下,人們才能幹點事情,社會才能發展。科學告訴我們,宇宙間萬物無時無刻不在運動、飛行。由於我們的生活環境在地球上保持相對穩定,以致於我們可以無憂無慮地吃飯和睡覺,壓根就意識不到自己是活生生的導彈。軟體開發最怕的就是需求變化,但“需求會發生變化”是個無法逃避的現實。人們希望在需求發生變化時,最好只對軟體做些皮皮毛毛的修改,可千萬別改動軟體的體系結構。就如人們對住宿的需求也會變動,你可以經常改變房間的裝璜和擺設,但不會在每次變動時都要去折牆、拆柱、挖地基。如果當需求發生變化時,程序員不得不去修改軟體的體系結構,那麼這個軟體的系統設計是失敗的。
良好的體系結構意味著普適、高效和穩定。本節將論述兩種非常通用的軟體體系結構:層次結構和客戶機/伺服器(Client/Server)結構。