如何規(guī)劃軟件的邏輯層次[2]

字號:

邏輯層次之間原則上是由上至下的依賴關(guān)系,同一層次內(nèi)部的對象可以互相依賴??缭綄哟蔚恼{(diào)用也是允許的,比如在UI Process中調(diào)用Business對象。UI層和UI Process層之間存在著互相的依賴。開發(fā)中我們最希望測試的是這三個層次:business過程、service、business對象。我們只要對下層對象建立stub對象,就可以對這三個層次上的對象進行測試。
    對這三個層次的測試結(jié)果不僅保證了程序的運行時正確性,也是對程序的業(yè)務(wù)流程進行測試。在開發(fā)過程中和維護過程中,某個業(yè)務(wù)流程發(fā)生了變化,可以用單元測試保證其他流程不會受到危害。這樣的構(gòu)架可以保證迭代開發(fā)過程。
    和物理層次的結(jié)合
    上面說的都是系統(tǒng)的邏輯層次。在系統(tǒng)中還存在著另一個層次——物理層次。邏輯層次的目的是簡化程序的邏輯復(fù)雜度,便于開發(fā)和維護;物理層次的實現(xiàn)需要考慮實際的物理分布情況,合理的安排每個物理節(jié)點的任務(wù),限度提高系統(tǒng)的性能。邏輯層次和物理層次的劃分依據(jù)和劃分目的都是不一樣的,他們之間存在著聯(lián)系,但也不是絕對的。來源:www.examda.com  
    邏輯層次和物理層次的結(jié)合有兩種方式:
    1、在基礎(chǔ)設(shè)施層解決掉物理分布的問題,建立一個分布式的對象容器,把business對象和service放到容器中。這樣,business對象和service就不必處理復(fù)雜的物理分布問題,business過程也不必關(guān)心他所調(diào)用的對象是在什么位置建立的。這樣的方式限度的減少了物理結(jié)構(gòu)對程序邏輯結(jié)構(gòu)的影響,增加了物理分布的靈活性。但是在大部分情況下,對系統(tǒng)的效率都是有危害的。
    2、在business對象內(nèi)部處理物理分布的問題,或者制定一個技術(shù)無關(guān)的接口來體現(xiàn)business對象,在各物理節(jié)點編寫各自的實現(xiàn)。這樣物理層次和邏輯層次是攪在一起的,使系統(tǒng)的邏輯結(jié)構(gòu)顯得混亂,但是可以達到較高的運行效率。