首页 > 其他 > 详细

《Effective Java 第二版》学习笔记,第21条:用函数对象表示策略

时间:2014-02-11 23:10:00      阅读:434      评论:0      收藏:0      [点我收藏+]

第21条:用函数对象表示策略

 

函数指针的主要用途就是实现策略模式。为了在Java中实现种子模式,要声明一个接口来表示该策略,并且为每个具体策略声明一个实现了该接口的类。当一个具体的策略只被使用一次时,通常使用匿名内部类来声明和实例化这个具体策略类。当一个具体策略是设计用来重复使用的时候,它的类通常要被实现为私有的静态成员,并通过共有的静态final域被导出,其类型为该策略接口。

例1:

1
2
3
4
5
Arrays.sort(StringArray,new Comparator<String>(){
    public int compare(String s1, String s2) {
        return s1.length() - s2.length();
    }
});

例2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Host {
    private static class StrLenCmp implements Comparator<String>,Serializable{
 
        @Override
        public int compare(String s1, String s2) {
            return s1.length() - s2.length();
        }
         
    }
     
    public static final Comparator<String> STRING_LENGTH_COMPARATOR = new StrLenCmp();
     
    public static void main(String[] args) {
        String s1 = "";
        String s2 = "";
        int result = Host.STRING_LENGTH_COMPARATOR.compare(s1, s2);
        System.out.println(result);
    }
}

  

《Effective Java 第二版》学习笔记,第21条:用函数对象表示策略

原文:http://www.cnblogs.com/harry881100/p/3544639.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!