《Java in Action》-1 第2章 通过行为参数化传递代码
2016-09-26 22:25
447 查看
第2章通过行为参数化传递代码
2.1 应对不断变化的需求
2.2 行为参数化
2.3 对付啰嗦
2.4 真实的例子
行为参数化是一个很有用的模式,它能够轻松地适应不断变化的需求。这种模式可以把一个行为(一段代码)封装起来,并通过传递和使用创建的行为将方法的行为参数化。类似于策略设计模式。2.4.1 用Comparator来排序
Collections.sort()方法可以用java.util.Compartor对象来参数化,它的接口如下:
public interface Comparator<T> {
public int compare(T o1,T o2);
}
使用匿名类,按照重量升序对库存排序:
inventory.sort(new Comparator<Apple>(){
public int compare(Apple aq,Apple a2){
return aq.getWeight().compareTo(a2.getWeight());
}
});
使用Lambda表达式:
inventory.sort(
(Apple a1,Apple a2) -> a1.getWeight().compareTo(a2.getWeight()));
2.4.2 用Runnable执行代码块
Thread t = new Thread(new Runnable(){
public void run(){
System.out.println("Hello world");
}
});
用Lambda表达式:
Thread t = new Thread( () -> System.out.pringln("Hello world"));
2.4.3 GUI事件处理
2.5 小结
*行为参数化,就是一个方法接受多个不同的行为作为参数,并在内部使用它们,完成不同行为的能力。* 行为参数化可让代码更好地适应不断变化的需求,减轻未来的工作量
*代码传递,就是将新行为作为参数传递给方法。但在Java 8之前这实现起来很啰嗦。为接口声明许多只用一次的实体类而造成的啰嗦代码,在Java 8 之前可以用匿名类来减少。
*Java API包含很多可以用不同行为参数化的方法,包括排序、线程和GUI处理。
相关文章推荐
- java8实战一:通过行为参数化传递代码
- Java_通过行为参数化传递代码
- Java8 in action(1) 通过行为参数化传递代码--lambda代替策略模式
- Java8 in action(1) 通过行为参数化传递代码--lambda代替策略模式
- java-8 行为参数化,代码传递-1
- 【Spring in action】自动化装配Bean、通过Java代码及xml装配Bean
- 通过行为参数传递代码
- 流 JAVA IO 基本小结 通过一行常见的代码讨论:new BufferedReader(new InputStreamReader(System.in))
- 流 JAVA IO 基本小结 通过一行常见的代码讨论:new BufferedReader(new InputStreamReader(System.in))
- AJAX & Java: Feature Interview with "AJAX in Action" Coauthor Dave Crane
- 通过socket传递java对象(对象序列化)
- java:struts学习(3)-jsp传递中文到action的解决方法,简易!!
- 通过XSLT访问Java代码
- MicrosoftReportingServicesinAction:用自定义代码扩展Microsoft2000ReportingServic…
- 通过url地址抓取网页html代码 - 可视化Java快速开发平台 - CSDNBlog
- JavaServer Faces in Action
- JAVA基础学习篇----《thinking in java》第六章:代码复用
- 一个通过Java连接MYSQL数据库的代码
- java通过ODBC连接sqlserver 代码
- 通过socket传递java对象(对象序列化)