如何才能稱之為業(yè)務(wù)邏輯與界面達(dá)到了徹底的分離?回答這個(gè)問(wèn)題困難。但是如果能夠找到一個(gè)參考原型,那就會(huì)很好理解。
我找的一個(gè)參考原型是:SQL Server + SQL Admin
1、SQL Server是服務(wù)器,它只有業(yè)務(wù)邏輯,沒(méi)有界面;
2、SQL Admin是SQL Server的界面,沒(méi)有業(yè)務(wù)邏輯;
3、SQL Server與SQL Admin通過(guò)TCP交互,它們是徹底分離的,影射成就是:這是一種業(yè)務(wù)邏輯與界面徹底分離的完美形式;
他們是如何徹底分離?其實(shí)很簡(jiǎn)單:
SQL Server提供了SQL Admin的一個(gè)TCP命令調(diào)用接口,也就是Command模式來(lái)完成,影射成就是:程序的業(yè)務(wù)邏輯應(yīng)該提供給界面一個(gè)Command接口,界面只能夠通過(guò)Command接口來(lái)執(zhí)行命令,而不能直接操作業(yè)務(wù)邏輯里面的數(shù)據(jù)。
當(dāng)然,如果考慮到界面需要不掛起,若Command執(zhí)行是阻塞模式就有些問(wèn)題,需要變換成回調(diào)返回的異步模式,這會(huì)復(fù)雜少許。