在动态模型编程中动作是具有run方法的模型,因此动作其实也可以当作对象来看待,这样就可以实现接口和事件等效果。
ReadLines模型可以把一个文件的内容读出并封装为List<String>对象返回,它的模型截图如下。

如上图,ReadLines定义了两个方法getFile和getEncoding,使用者可以通过重写这两个方法来实现自己的获取文件的方法。
public static List<String> readLines(ActionContext actionContext) throws IOException{
Thing self = actionContext.getObject("self");
File file = getFile(self, "getFile", actionContext);
Object encoding = self.doAction("getEncoding", actionContext);
if(encoding == null){
return FileUtils.readLines(file);
}else if(encoding instanceof Charset){
return FileUtils.readLines(file, (Charset) encoding);
}else{
return FileUtils.readLines(file, String.valueOf(encoding));
}
}
在ReadLines的run方法的实现里可以看到接口方法getFile和getEncoding的调用。
如下面的视频ReadLines的getFile方法用文件对话框的模型重写了。

Copyright © 2007-2019 XWorker.org 版权所有 沪ICP备08000575号