接口和事件

1.动作模型也是对象

    在动态模型编程中动作是具有run方法的模型,因此动作其实也可以当作对象来看待,这样就可以实现接口和事件等效果。

2.示例

2.1.ReadLines模型

    ReadLines模型可以把一个文件的内容读出并封装为List<String>对象返回,它的模型截图如下。

    如上图,ReadLines定义了两个方法getFile和getEncoding,使用者可以通过重写这两个方法来实现自己的获取文件的方法。

2.2.ReadLines模型的run方法

	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的调用。

2.3.ReadLines测试

    如下面的视频ReadLines的getFile方法用文件对话框的模型重写了。

 

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