《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处理。

0 0
原创粉丝点击