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