StrangeIOC使用流程 二

2022-05-18 11:28:56 字數 1821 閱讀 2416

1.繼續得到分數後直接呼叫了onreceivescore()方法 這裡其實應該是從伺服器獲取分數

接下來處理拿到分數之後如何**給requestscorecommand類

可以通過在scoreservice方法中新增乙個dispatcher  對方法進行注入

新增乙個列舉

public enum demo1serviceevent

修改後的requestscorecommand類

public class requestscorecommand : command //這裡由於不像cubemediator 在注入cubeview的時候 因為cubeview是掛到遊戲物體上的,獲得的注入唯一.這個介面可能有很多實現, 所以需要通過注入繫結的方式進行指定

public override void execute() //在mediator裡去觸發 這個方法去請求伺服器裡的分數

public void oncomplete(ievent evt) //當伺服器獲取到分數後**這個方法, 通過注入的方式 object 型別的引數

scoreservice 類

public class scoreservice : iscoreservice

public void requestscore(string url)

public void onreceivesscore()

public void updatascore(string url, int score)

}接下來同樣的通過diapatcher 在oncomplete()方法拿到分數之後傳遞給cubemediator

在cubemediator中新增對分數更新的方法 onscorechange(ievent evt)

這時候就需要乙個event來在oncomplete中去觸發, 所以新增乙個列舉

public enum demo1mediatorevent

首先在cubemediator的onregister()方法中新增方法注入

dispatcher.addlistener(demo1mediatorevent.scorechange, onscorechange);

在onremove方法中取消注入

dispatcher.removelistener(demo1mediatorevent.scorechange, onscorechange);

然後在請求分數完成, 也就是requestscorecommand類的oncomplete方法中新增"呼叫" 其實是發出事件

dispatcher.dispatch(demo1mediatorevent.scorechange,evt.data);

這裡需要注意一點, 之前requestscorecommand是繼承的command類, 可以修改為繼承eventcommand類, 這樣eventcommand類中帶有乙個全域性的dispatcher 就可以直接使用了,並且繼承了之後還可以使用裡邊的ievent 來取得傳遞回來的資料

最後在cebemediator中去更新分數就可以了

public void onscorechange(ievent evt)

{cubeview.updatescore((int)evt.data);

接下來做乙個修改,因為一般都是遊戲執行時從伺服器取資料, 之後基本都是去更新資料, 這個時候就需要將取到的資料儲存到資料模型中也就是m層 保證其他地方需要資料的時候也能獲取到,而不是重複從伺服器取 ,接下來做資料儲存, 通過command來儲存到model

這幾個模組之間都是可以互相注入的, 但是不建議將m層和v進行互動

剩下最後是將資料儲存到m層中, 然後每次點選時去更新分數到伺服器. 

基於2017.3.0

CSocket使用流程

csocket類是對casyncsocket 的繼承,因此它也封裝了windows api函式。相對於casyncsocket 類,csocket 是對windows socket api的更高階別的抽象化 心得 換言之,更容易使用,但難以進行如casyncsocket 般精準的通訊控制 csock...

autotools使用流程

1 autoscan root localhost automake autoscan 它會在給定目錄及其子目錄樹中檢查原始檔,若沒有給出目錄,就在當前目錄及其子目 錄樹中進行檢查。它會搜尋原始檔以尋找一般的移植性問題並建立乙個檔案 configure.scan 該檔案就是接下來autoconf要用...

OpenGl ES 使用流程

opengl es 2.0 graphics pipeline 渲染管線流程 vertex arrays buffer object 頂點資料 vertex shader 頂點shader primitive assembly 圖元裝配 rasterization 光柵化 fragment shad...