在动态模型编程中动作是具有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号