松耦合服務呼叫利器 服務分發器

2021-09-08 02:32:38 字數 1861 閱讀 7671

物件和物件之間是通過訊息來進行通訊的。具體過程如下:

通過上面的過程可以看出通訊的呼叫方需要依賴如下元素:

那麼我們可以把通訊的過程通過引入乙個間接層-服務分發器來解耦物件間的之間通訊,具體過程如下:

定義服務分發器介面

[contract]

public

inte***ce iservicedispatcher

定義請求介面
public inter  iservicerequest

string operationname

idictionary arguments

}

定義響應介面
public

inte***ce iserviceresponse

object result

exception exceptions

}定義服務分發器門面類servicedispatcher

public

static

class servicedispatcher

建立乙個calculateservice

using nlite;

namespace consoledemo

public

int sub(int a, int b)

public

int multiply(int a, int b)

public

int divide(int a, int b)}}

4. 新增測試程式

using system;

using nlite;

using nlite.cfg;

using nlite.domain;

namespace consoledemo

); console.writeline("2 + 3 = " + result.tostring());

//call calculteservice.sub method

result =servicedispatcher.dispatch("calculate", "sub", new );

console.writeline("2 - 3 = " + result.tostring());

//call calculteservice.multiply method

result =servicedispatcher.dispatch("calculate", "multiply", new );

console.writeline("2 * 3 = " + result.tostring());

//call calculteservice.divide method

result =servicedispatcher.dispatch("calculate", "divide", new );

console.writeline("2 / 3 = " + result.tostring());

console.read();}}

}

執行結果如下:

最後附上demo**

伺服器開發利器golangcontext用法詳解

伺服器開發利器golangcontext用法詳解。在go伺服器中,對於每個請求的request都是在單獨的goroutine中進行的,處理乙個request也可能設計多個goroutine之間的互動,使用context可以使開發者方便的在這些goroutine裡傳遞request相關的資料 取消go...

徐松亮伺服器部署教學 MQTT伺服器部署

歡迎進入徐松亮部落格一站式導航搜尋 隨時更新 mqtt估計不像tomcat那麼有名,聽過的人恐怕不多,它是主要用於物聯網裝置的伺服器。由於它 emq 的開源 免費 百萬級裝置的穩定應用場景,我很看好它。簡單易用,資源有限的客戶端有開源嵌入式 比如esp8266硬體平台 還是值得學習了解一下的!目錄 ...

在分發伺服器上檢視資訊

1 發布資訊 2 檢視agent的profile資訊,每個agent都有相應的系統表可以供檢視 select from mssnapshot agents select from msdistribution agents select from mslogreader agents 上面的查詢會返...