模組對外提供介面 技巧總結

2021-04-24 19:46:52 字數 1016 閱讀 1977

1: 乙個模組需要對外開放一些介面, 使外部可以訪問本模組的東東.

最簡單/最方便的對外介面是:

set***1()

set***2()

set***3()

get***1()

get***2()

get***3

對每乙個類似的功能實現乙個對外的介面, 但是這樣導致的問題是, 介面太多, 比較亂.

可以提供乙個通用的設定/獲取資料結構的介面.

eg 1:

int setxeyeinte***cestate(void* wantstate)

由於只有乙個引數, wantstate,必須為乙個固定的結構體.

比如://設定/獲取介面元素

struct xeyeinte***cestate

;eg 2:

int setxeyeinte***cestate(char* strname, void* wantstate);

int setxeyeinte***cestate(int itype, void* wantstate);

這兩個函式都具有兩個引數, 這個函式區別與上面函式的特點在於, 可以提供更靈活的引數設定控制.

可以根據strname, 或 itype, 把wantstate轉換為不同的結構體.

///**函式接**巧.

**函式, 一般都要保證有乙個void*型別的引數傳入, 可以給**函式的實現者更強大的控制功能.

eg void getdeviceidnotify( const xeyedeivceidmsg &msg )

比起void getdeviceidnotify( const xeyedeivceidmsg &msg, void * )

少了些靈活性.

由於**函式, 不可以是類成員函式, 所以, **函式實現裡面僅能訪問到全域性的資源, 這給對c++物件導向的編碼者帶來了不爽, 如果採用第二種介面定義方式, void* 使得, 使用方可以把其類示例指標傳遞進去, 這樣, 就可以在**函式裡面訪問到類內部的變數或函式了.

Spring整合Dubbo對外提供服務

1.新增依賴 dubbox compile group com.alibaba name dubbo version 2.5.3 compile io.netty netty 3.7.0.final zookeeper客戶端 compile com.github.sgroschupf zkclien...

kafka 對外提供服務方案簡述

首先,使用者資料會經過 kafka 佇列傳遞到我們的業務層。我們希望使用者能夠通過乙個通用層接入我們的kafka服務,但是有的使用者希望能夠直接連到我們的 kafka 上面,這就需要我們的 kafka 對外暴露broke服務以便被接入。那麼如何保證使用者資料接入的可靠性和安全性,就成為了這篇文章的主...

Docker 構建Mysql容器並對外提供服務

構建容器 docker run name some mysql p 3306 3306 e mysql root password my secret pw d mysql name 指定容器名稱 p 引數將容器內的3306埠與本地3306介面對映 e 新增了乙個環境變數mysql root pas...