DCI中Context物件的新設計
1. 我們需要建立一個繼承自 Context 類的 MyContext自定義的場景。
程式碼如下:
var Context = require('./Context');
var util = require('util');
var MyContext = module.exports = function(/*這裡的構造引數可以加入所需Data物件*/){
Context.call(this);
}
util.inherits(MyContext,Context); // 繼承 Context
// 重寫interact互動方法
MyContext.prototype.interact = function(afterHandle){ // 結果處理 Function物件 , interact 不應該由使用者直接呼叫,而是 run() ---》 呼叫的。參看 cxt.on('after',function(result)......)
// (略)這裡是互動程式碼
// 把最終結果交給afterHandle
afterHandle(result);
}
// OK, 這個Context建立成功
2. 呼叫場景,用的是Nodejs伺服器來測試的,程式碼如下
var MyContext = require('./MyContext');
var express = require('express');
var app = express.createServer();
app.get('/',function(req,res){
var cxt = new MyContext();
cxt.on("init",function(self,next){
self.abc = "lion tseng";
next();
});
cxt.on('after',function(result){ // 結果處理
res.send(result);
});
cxt.run(); // 執行場景...>
});
app.listen(3000);
//////////////////////// localhost:3000 瀏覽結果是: ////////////////
hello world.lion tseng
注意: 當呼叫 cxt.run 時 這裡的呼叫順序是 init -> before -> 使用者自定義 interact 方法 -> after
self是 cxt自身 , next是進行下一步的的處理,比如 Init中呼叫的 next() 就是 呼叫了 before 所有的 listeners.
[該貼被liontseng於2011-05-07 15:19修改過]
相關文章
- DCI中的Context可以理解為“用例”嗎?Context
- DCI 的 註冊場景ContextContext
- 場景Context是新的物件型別Context物件型別
- DCI的Contex建立時注入request物件物件
- 求助:簡單遊戲DCI應用設計遊戲
- 設計模式(八)Context中的裝飾者模式設計模式Context
- Context真正的實現與Context設計模式Context設計模式
- React 中的新舊 Context 簡單對比ReactContext
- JavaScript 中的物件導向程式設計JavaScript物件程式設計
- JavaScript 遊戲中的物件導向的設計JavaScript遊戲物件
- JavaScript遊戲中的物件導向的設計JavaScript遊戲物件
- Android中Application和Activity的Context物件的區別AndroidAPPContext物件
- 九. Go併發程式設計--context.ContextGo程式設計Context
- Java中物件導向的設計原則Java物件
- 遊戲中那些新穎的設計(一)遊戲
- (譯)React ⚛️ 新的 Context APIReactContextAPI
- 一種新的程式設計思路(中): (轉)程式設計
- DCI的AspectJ實現
- 關於DCI的理解
- 理解Js中物件導向程式設計的繼承JS物件程式設計繼承
- 深入解讀 JavaScript 中的物件導向程式設計JavaScript物件程式設計
- golang中的context包GolangContext
- Flask 中的 Context 初探FlaskContext
- 一種新的程式設計思路(中)附: (轉)程式設計
- 關於將Jdon框架提升為DCI框架的設想框架
- Swift 中的面向協議程式設計:是否優於物件導向程式設計?Swift協議程式設計物件
- 在客戶端呼叫程式碼中,最好出現DCI中的Data ?客戶端
- 【Go進階—併發程式設計】ContextGo程式設計Context
- VB.NET中的物件導向程式設計特徵 (轉)物件程式設計特徵
- js物件導向設計---建立物件的方式JS物件
- 如何設計物件?物件
- ES6新特性:JavaScript中的Reflect物件JavaScript物件
- TOMCAT的Context設定TomcatContext
- JavaScript中的Window物件(開啟新的視窗)JavaScript物件
- 遞迴物件的設計模式遞迴物件設計模式
- 《Lua-in-ConTeXt》02:ConTeXt 計算機Context計算機
- go 併發程式設計案例三 golang 中的物件導向程式設計Golang物件
- 在ASP.NET中物件導向的程式設計思想 (轉)ASP.NET物件程式設計