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