策略的设计模式
java中的设备模式,用一句话来说就是利用多态的函数类来实现设计的模式
//定义接口
interface Combiner<T>
{
T combine(T x,T y);
}
//整个实现过程是这样的:
首先定义一个嵌套类(static内部类):IntegerAdder类,像是一个函数类,他实现了combiner接口中的combine()方法;然后定义一个reduce()方法,在main()函数值中调用,然后将IntegerAdder函数类作为一个对象传进去,在reduce方法中由于多态,其中的combiner.combine()将会调用IntegerAdder类内定义的combine();
class Functional
{
public static<T> Treduce(Iterable<T> seq,Combiner<T> combiner)
{
Iterator<T> it=seq.iterator();
if(it.hasNext()){
T result=it.next();
while(it.hasNext()){
result=combiner.combine(result,it.next());
}
return result;
}
return null;
}
static classIntegerAdder implements Combiner<Integer>
{
public Integer combine(Integerx,Integer y)
{
return x+y;
}
}
public staticvoid main(String[] args)
{
List<Integer>li=Arrays.asList(1,2,3,4,5,6,7);
Integer result=reduce(li,newIntegerAdder());
System.out.println(result);
}
}