《Java in Action》-1 第2章 通过行为参数化传递代码
来源:互联网 发布:java b2b2c 开源 编辑:程序博客网 时间:2024/04/20 09:49
第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处理。
- 《Java in Action》-1 第2章 通过行为参数化传递代码
- Java8 in action(1) 通过行为参数化传递代码--lambda代替策略模式
- Java_通过行为参数化传递代码
- 通过行为参数传递代码
- java8实战一:通过行为参数化传递代码
- 《Java in Action》-1 第3章 Lambda表达式
- 《Java in Action》-1 第4章 引入流
- 《Java in Action》-1 第5章使用
- 《Java in Action》-1 第9章 默认方法
- spring in action第1章,第2章
- JAVA8 in Action:行为参数化,匿名类及lambda表达式的初步认知实例整理
- Java参数传递是通过值传递
- C# 参数传递行为
- 《Java 8 in Action》-1 第1章 为什么要关心Java 8
- Spring In Action读书笔记之五------------------AOP的参数传递
- 《Java in Action》-1 第6章用流收集数据
- 《Java in Action》-1 第8章重构、测试和调试
- 《Java in Action》 -1 第10章用Optional取代null
- python学习之 12306的一个小爬虫
- 深入理解javascript(4):__proto__
- STL容器之Vector
- java编程思想(七)总结
- 暴露年龄
- 《Java in Action》-1 第2章 通过行为参数化传递代码
- QT的exe文件移植到其他机器非png图片不显示问题
- linux下日志文件系统
- java网络编程
- Picasso总结
- Classical Sentences from ShanBei Reading
- NSString属性声明中的copy和retain区别
- Spring-8 AOP面向切面编程
- HTTP常见错误