`
JavaSam
  • 浏览: 936415 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA 回调机制之策略模式

    博客分类:
  • JAVA
阅读更多
package com.file;

import java.io.File;
import java.io.IOException;


public class ProcessFiles {
	/**
	 * 策略模式
	 * @author Administrator
	 *重点
	 */
	public interface Strategy{
		void process(File file);
	}
	private Strategy strategy;
	private String ext;//扩展名称
	
	public ProcessFiles (Strategy strategy , String ext){
		this.strategy = strategy;
		this.ext = ext;
	}
	
	public void start (String[] args){
		try {
			if(args.length == 0){
				processDirectoryTree(new File("."));
			}else{
				for(String arg : args){
					File fileArg = new File(arg);
					if(fileArg.isDirectory()){
						processDirectoryTree(fileArg);
					}else{
						if(!arg.endsWith("." + ext)){
							arg += "." + ext;
						}
						strategy.process(new File(arg).getCanonicalFile());
					}
				}
			}
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}
	public void processDirectoryTree(File root)throws IOException{
		for(File file : Directory.walk(root.getAbsoluteFile(),".*\\." + ext)){
			strategy.process(file.getCanonicalFile());
		}
	}
	public static void main(String[] args) {
		new ProcessFiles(new ProcessFiles.Strategy() {
			public void process(File file) {
				System.out.println(file);
			}
		}, "java").start(new String[]{"."});
	}
}
 
分享到:
评论

相关推荐

    java 面试题 总结

    JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    10.8.2 使用专门的监听器实现回调 448 10.8.3 为全部实体配置默认监听器 450 10.8.4 排除监听器 452 10.9 本章小结 455 第11章 JPA的查询支持 456 11.1 查询API 457 11.1.1 面向对象的JPQL 457 11.1.2 查询API简介 ...

    精通并发与 netty 视频教程(2018)视频教程

    精通并发与netty视频教程(2018)视频教程 netty视频教程 Java视频教程目录: 1_学习的要义 2_Netty宏观理解 3_Netty课程大纲深度解读 4_项目环境搭建与Gradle配置 5_Netty执行流程分析与重要组件介绍 6_Netty回调与...

    Java并发编程实战

    12.1.5 使用回调213 12.1.6 产生更多的交替操作214 12.2 性能测试215 12.2.1 在PutTakeTest中增加计时功能215 12.2.2 多种算法的比较217 12.2.3 响应性衡量218 12.3 避免性能测试的陷阱220 12.3.1 垃圾回收...

    超级有影响力霸气的Java面试题大全文档

    超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...

    精通并发与netty视频教程(2018)视频教程

    6_Netty回调与Channel执行流程分析 7_Netty的Socket编程详解 8_Netty多客户端连接与通信 9_Netty读写检测机制与长连接要素 10_Netty对WebSocket的支援 11_Netty实现服务器端与客户端的长连接通信 12_Google Protobuf...

    Java开发技术大全 电子版

    4.10.3抽象方法与回调函数171 4.11最终类与最终方法173 4.12接口与多重继承174 4.12.1接口的定义174 4.12.2接口的继承175 4.12.3接口的实现177 4.13内部类179 4.13.1内部类的定义179 4.13.2内部类访问外部类...

    精通并发与netty 无加密视频

    第6讲:Netty回调与Channel执行流程分析 第7讲:Netty的Socket编程详解 第8讲:Netty多客户端连接与通信 第9讲:Netty读写检测机制与长连接要素 第10讲:Netty对WebSocket的支援 第11讲:Netty实现服务器端与...

    Java学习笔记-个人整理的

    {7.2}回调模式与FileFilter}{104}{section.7.2} {7.3}\ttfamily RandomAccessFile}{106}{section.7.3} {7.4}基本类型数据序列化}{108}{section.7.4} {7.5}String的序列化}{109}{section.7.5} {7.6}InputStream...

    asp.net知识库

    Asp.Net2.0无刷新客户端回调 体验.net 2.0 的优雅(1) -- 异步WebService调用 ASP.NET 2.0页面框架的几点新功能 ASP.NET 2.0 中收集的小功能点 asp.net2.0中的webpart使用小记 2.0问题、错误解决办法 ASP.NET 2.0...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    (1)针对多窗口类浏览器模式问题,指出并分析了该问题存在的原因,利用Activity的运行机制,通过Fragment栈对主要模块的Webview进行管理,实现对不同模块之间切换的控制。 (2)针对跨域数据交互问题,指出并分析了...

    财付通api接口

    补单机制 对后台通知流程, 如果财付通收到财付通 APP 的应答不是 success 或由于网络异常超时, 财付通 认为通知失败,财付通会通过一定的策略(如1分钟、2分钟、4分钟、8分钟、16分钟、32分钟,共6次) 定期重新...

    我的编程感悟(中文PDF)(共37M二分卷)分卷二

    11.6.4 回调机制 336 11.7 反外挂技术 338 11.7.1 防止加速器 338 11.7.2 防止分析伪造网络包 339 11.7.3 防止逆向工程 341 11.7.4 防止代码钩子 344 11.7.5 惩戒外挂作弊者 344 11.7.6 安全地将信息传递给服务器 ...

    antlr4权威指南

    ANTLR生成的语法分析器能够自动建立名为语法分析树(parse tree)的视图,其他程序可以遍历此树,并在所需处理的结构处触发回调函数。在先前的ANTLR 3中,用户需要补充语法来创建树。除了自动建立树结构之外,ANTLR ...

    我的编程感悟(中文PDF)(共37M二分卷)分卷一

    11.6.4 回调机制 336 11.7 反外挂技术 338 11.7.1 防止加速器 338 11.7.2 防止分析伪造网络包 339 11.7.3 防止逆向工程 341 11.7.4 防止代码钩子 344 11.7.5 惩戒外挂作弊者 344 11.7.6 安全地将信息传递给服务器 ...

    开涛高可用高并发-亿级流量核心技术

    16.7.8 微信接口调用量暴增 344 16.7.9 开启Nginx Proxy Cache性能不升反降 344 16.7.10 配送至读服务因依赖太多,响应时间偏慢 344 16.7.11 网络抖动时,返回502错误 346 16.7.12 机器流量太大 346 16.8 其他 347 ...

    ARCH4系统开发指南

    2.23.4 关于回调函数 64 2.24 同一个Edit页面用于多模块多actionType的实现方法 64 2.25 在Action和ServiceSpringImpl中读取资源文件 65 2.26 异常管理 65 2.26.1 分类概述 65 2.26.2 异常与系统架构的关系图 66 ...

    resin-jvm 调优

    可通过如下参数进行调整:-server 启用服务器模式(如果CPU多,服务器机建议使用此项) -Xms,-Xmx一般设为同样大小。 800m -Xmn 是将NewSize与MaxNewSize设为一致。320m -XX:PerSize 64m -XX:NewSize 320m 此...

    Tcl_TK编程权威指南pdf

    回调与名字空间 内省(introspection) namespace命令 转换现有的软件包以使用名字空间 [incrtcl]对象系统 注意事项 第15章 国际化(internationalization) 字符集与编码 消息目录 第16章 事件驱动的编程 ...

Global site tag (gtag.js) - Google Analytics